Android发送邮件的方法实例详解
程序员文章站
2024-02-14 10:07:34
本文实例讲述了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程序设计有所帮助。