欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android发送邮件的方法实例详解

程序员文章站 2024-02-21 20:53:04
本文实例讲述了android发送邮件的方法。分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的。如何实现它呢?下面以简单的例子进行说...

本文实例讲述了android发送邮件的方法。分享给大家供大家参考,具体如下:

在android手机中实现发送邮件的功能也是不可缺少的。如何实现它呢?下面以简单的例子进行说明。

程序如下:

import java.util.regex.matcher;
import java.util.regex.pattern;
import android.app.activity;
import android.content.intent;
import android.os.bundle;
import android.view.keyevent;
import android.view.view;
import android.view.view.onclicklistener;
import android.view.view.onkeylistener;
import android.widget.button;
import android.widget.edittext;
public class a04activity extends activity {
 private edittext reciver,cc,subject,body;
 private button b;
 private string[] strreciver;
 private string[] strcc;
 private string strbody;
 private string strsubject;
  /** called when the activity is first created. */
  @override
  public void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);
    b=(button)findviewbyid(r.id.button);
    b.setenabled(false); 
    b.settext("发送邮件");
    reciver=(edittext)findviewbyid(r.id.reciver);
    subject=(edittext)findviewbyid(r.id.subject);
    cc=(edittext)findviewbyid(r.id.cc);
    body=(edittext)findviewbyid(r.id.body);
    reciver.settext("请输入邮箱地址"); //设置默认字段
    body.settext("请输入邮件内容");
    subject.settext("请输入主题");
    cc.settext("请输入邮件的字段");
    //点击编辑框,进入可编辑状态
    reciver.setonclicklistener(new onclicklistener(){
  @override
  public void onclick(view v) {
  // todo auto-generated method stub
  reciver.settext("");
  }
    });
    cc.setonclicklistener(new onclicklistener(){
  @override
  public void onclick(view v) {
  // todo auto-generated method stub
  cc.settext("");
  }
    });
    subject.setonclicklistener(new onclicklistener(){
  @override
  public void onclick(view v) {
  // todo auto-generated method stub
  subject.settext("");
  }
    });
    body.setonclicklistener(new onclicklistener(){
  @override
  public void onclick(view v) {
  // todo auto-generated method stub
  body.settext("");
  }
    });
    reciver.setonkeylistener(new onkeylistener(){
  @override
  public boolean onkey(view v, int keycode, keyevent event) {
  // todo auto-generated method stub
  if(isemail(reciver.gettext().tostring())){
   b.setenabled(true);
  }
  else{
   b.setenabled(false);
  }
  return false;
  }
    });
    b.setonclicklistener(new onclicklistener(){
  @override
  public void onclick(view v) {
  // todo auto-generated method stub
  strreciver=new string[]{reciver.gettext().tostring()};
  strcc=new string[]{cc.gettext().tostring()};
  strsubject=subject.gettext().tostring();
  strbody=body.gettext().tostring();
  intent i=new intent(android.content.intent.action_send);
  i.putextra(android.content.intent.extra_email, strreciver);
  i.putextra(android.content.intent.extra_cc, strcc);
  i.putextra(android.content.intent.extra_subject, strsubject);
  i.putextra(android.content.intent.extra_text, strbody);
  startactivity(intent.createchooser(i, getresources().getstring(r.string.str_message)));
  }
    });
  }
  public static boolean isemail(string s){
   string expression="^[a-za-z][\\w\\.-]*[a-za-z0-9]@[a-za-z0-9][\\w\\.-]*[a-za-z0-9]\\.[a-za-z][a-za-z\\.]*[a-za-z]$";
   pattern p=pattern.compile(expression);
   matcher m=p.matcher(s);
   return m.matches();
  }
}

res/layout/main.xml如下

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >
  <textview
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
  <button 
    android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <edittext 
    android:id="@+id/reciver"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <edittext 
    android:id="@+id/cc"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <edittext 
    android:id="@+id/subject"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
  <edittext 
    android:id="@+id/body"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</linearlayout>

上面是android中实现发送邮件功能的方法之一,还有另外两种方法如下所示:

方法一:

uri uri=uri.parse("mailto:1650***185@qq.com");
intent i=new intent(intent.action_sendto,uri);
startactivity(i);

方法二:

intent i=new intent(intent.action_send);
string[] tos={"1650***185@qq.com"};
string[] ccs={"7885***158@qq.com"};
i.putextra(intent.extra_emall,tos);
i.putextra(intent.extra_cc,ccs);
i.putextra(intent.extra_text,"邮件内容");
i.putextra(intent.extra_subject,"邮件主题");
i.settype("message/rfc822");
startactivity(intent.createchooser(i,"你的邮件"));

如果想在发送的邮件中添加附件,则可以这样写:

intent i=new intent(intent.action_send);
i.putextra(intent.extra_subject,"邮件主题");
i.putextra(intent.extra_stream, "file:///sdcard/xyz.mp3");
startactivity(intent.createchooser(i,"你的邮件"));

更多关于android相关内容感兴趣的读者可查看本站专题:《android控件用法总结》及《android开发入门与进阶教程

希望本文所述对大家android程序设计有所帮助。