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

Android开发中怎样调用系统Email发送邮件(多种调用方式)

程序员文章站 2023-12-03 14:17:16
我们都知道,在android中调用其他程序进行相关处理,几乎都是使用的intent,所以,email也不例外。 在android中,调用email有三种类型的intent:...
我们都知道,在android中调用其他程序进行相关处理,几乎都是使用的intent,所以,email也不例外。

在android中,调用email有三种类型的intent:
intent.action_sendto 无附件的发送
intent.action_send 带附件的发送
intent.action_send_multiple 带有多附件的发送

当然,所谓的调用email,只是说email可以接收intent并做这些事情,可能也有其他的应用程序实现了相关功能,所以在执行的时候,会出现选择框进行选择。

1.使用sentto发送
[java]
复制代码 代码如下:

intent data=new intent(intent.action_sendto);
data.setdata(uri.parse("mailto:way.ping.li@gmail.com"));
data.putextra(intent.extra_subject, "这是标题");
data.putextra(intent.extra_text, "这是内容");
startactivity(data);

intent data=new intent(intent.action_sendto);
data.setdata(uri.parse("mailto:way.ping.li@gmail.com"));
data.putextra(intent.extra_subject, "这是标题");
data.putextra(intent.extra_text, "这是内容");
startactivity(data);

通过向intent中putextra来设定邮件的相关参数。

2.使用send发送
[java]
复制代码 代码如下:

intent intent = new intent(intent.action_send);
string[] tos = { "way.ping.li@gmail.com" };
string[] ccs = { "way.ping.li@gmail.com" };
string[] bccs = {"way.ping.li@gmail.com"};
intent.putextra(intent.extra_email, tos);
intent.putextra(intent.extra_cc, ccs);
intent.putextra(intent.extra_bcc, bccs);
intent.putextra(intent.extra_text, "body");
intent.putextra(intent.extra_subject, "subject");

intent.putextra(intent.extra_stream, uri.parse("file:///mnt/sdcard/a.jpg"));
intent.settype("image/*");
intent.settype("message/rfc882");
intent.createchooser(intent, "choose email client");
startactivity(intent);

intent intent = new intent(intent.action_send);
string[] tos = { "way.ping.li@gmail.com" };
string[] ccs = { "way.ping.li@gmail.com" };
string[] bccs = {"way.ping.li@gmail.com"};
intent.putextra(intent.extra_email, tos);
intent.putextra(intent.extra_cc, ccs);
intent.putextra(intent.extra_bcc, bccs);
intent.putextra(intent.extra_text, "body");
intent.putextra(intent.extra_subject, "subject");

intent.putextra(intent.extra_stream, uri.parse("file:///mnt/sdcard/a.jpg"));
intent.settype("image/*");
intent.settype("message/rfc882");
intent.createchooser(intent, "choose email client");
startactivity(intent);

很简单,发送邮件中,有收件者,抄送者,密送者。 也就是分别通过
intent.extra_email,
intent.extra_cc,
intent.extra_bcc
来进行putextra来设定的,而单个附件的发送,则使用intent.extra_stream来设置附件的地址uri。

3.使用send_multiple来进行多附件的发送
[java]
复制代码 代码如下:

intent intent = new intent(intent.action_send_multiple);
string[] tos = { "way.ping.li@gmail.com" };
string[] ccs = { "way.ping.li@gmail.com" };
intent.putextra(intent.extra_email, tos);
intent.putextra(intent.extra_cc, ccs);
intent.putextra(intent.extra_text, "body");
intent.putextra(intent.extra_subject, "subject");

arraylist<uri> imageuris = new arraylist<uri>();
imageuris.add(uri.parse("file:///mnt/sdcard/a.jpg"));
imageuris.add(uri.parse("file:///mnt/sdcard/b.jpg"));
intent.putparcelablearraylistextra(intent.extra_stream, imageuris);
intent.settype("image/*");
intent.settype("message/rfc882");
intent.createchooser(intent, "choose email client");
startactivity(intent);

intent intent = new intent(intent.action_send_multiple);
string[] tos = { "way.ping.li@gmail.com" };
string[] ccs = { "way.ping.li@gmail.com" };
intent.putextra(intent.extra_email, tos);
intent.putextra(intent.extra_cc, ccs);
intent.putextra(intent.extra_text, "body");
intent.putextra(intent.extra_subject, "subject");

arraylist<uri> imageuris = new arraylist<uri>();
imageuris.add(uri.parse("file:///mnt/sdcard/a.jpg"));
imageuris.add(uri.parse("file:///mnt/sdcard/b.jpg"));
intent.putparcelablearraylistextra(intent.extra_stream, imageuris);
intent.settype("image/*");
intent.settype("message/rfc882");
intent.createchooser(intent, "choose email client");
startactivity(intent);

发送多个附件,最主要的时候,通过putparcelablearraylistextra将多个附件的uri地址list设置进去就ok了。其实还是很简单的。