美文网首页
Android发邮件

Android发邮件

作者: 花香_Android | 来源:发表于2016-11-28 15:37 被阅读0次

本文转载:http://www.jb51.net/article/38158.htm 侵删
在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说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了。其实还是很简单的。

更新:
public class MailClientChoose {
public static void mailContact(Context c, String mailAdress) {
Uri uri = Uri.parse("**mailto:"+
**mailAdress
);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
//intent.putExtra(Intent.EXTRA_CC, email); // 抄送人
// intent.putExtra(Intent.EXTRA_SUBJECT, "这是邮件的主题部分"); // 主题
// intent.putExtra(Intent.EXTRA_TEXT, "这是邮件的正文部分"); // 正文 c.startActivity(Intent.createChooser(intent, "请选择邮件类应用")); }}

有两点需要注意:
(1):必须使用Intent.ACTION_SENDTO,而不是Intent.ACTION_SEND。
否则就会出现很多非邮箱类应用
(2):必须用 : Uri uri = Uri.parse("[mailto:"+mailAdress(mailto:%22+mailAdress));
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
而不是 :
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.putExtra(Intent.EXTRA_EMAIL, mailAdress);
否则找不到邮箱类应用

相关文章

  • Android发邮件

    本文转载:http://www.jb51.net/article/38158.htm 侵删在Android中调用...

  • 用 Android Intent 发邮件

    三句话小结 Intent.ACTION_SENDTO 多在发纯文本邮件时用 Intent.ACTION_SE...

  • android 使用邮箱发邮件

    【链接】(1)https://blog.csdn.net/tangedegushi/article/details...

  • 使用sendEmail发邮件

    Linux 使用sendEmail发邮件 发邮件命令如下:

  • 2018-06-09

    给张主任发邮件 给王轩发邮件 填出差申请 打印问题单

  • SpringBoot发邮件

    Springboot 使用 JavaMailSender 发邮件 发邮件功能,使用还是很普遍的,比如注册,找回密...

  • Python基础-day15

    list ​ 发邮件 ​ 日志 ​ 测试 ​ 元类 发邮件 SMTP服务(打开) 用户名 密码(授...

  • 发邮件

    利用python3发送邮件 安装模块 方式一:不使用系统的密钥环不使用系统的密钥环,可以直接暴露账户和密码在脚本里...

  • 发邮件

    参考这个:https://blog.csdn.net/chenchuwai/article/details/866...

  • 2020-03-09 sendmail

    python发邮件简单三步,python发邮件python-email.htmlpython smtp邮件pyth...

网友评论

      本文标题:Android发邮件

      本文链接:https://www.haomeiwen.com/subject/umyopttx.html