博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 调用系统Email发送带多附件的邮件
阅读量:5840 次
发布时间:2019-06-18

本文共 2389 字,大约阅读时间需要 7 分钟。

转自:http://www.open-open.com/lib/view/open1347005126912.html

 

   众所周知,在Android中调用其他程序进行相关处理,都是使用的Intent。当然,Email也不例外。

  在Android中,调用Email有三种类型的Intent:

  Intent.ACTION_SENDTO  无附件的发送

  Intent.ACTION_SEND  带附件的发送

  Intent.ACTION_SEND_MULTIPLE  带有多附件的发送

 

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

 

  1.使用SENTTO发送

  

1
2
3
4
5
Intent data=
new
Intent(Intent.ACTION_SENDTO); 
data.setData(Uri.parse(
"mailto:455245521@qq.com"
)); 
data.putExtra(Intent.EXTRA_SUBJECT, 
"这是标题"
); 
data.putExtra(Intent.EXTRA_TEXT, 
"这是内容"
); 
startActivity(data);

 

   通过向Intent中putExtra来设定邮件的相关参数。

 

  2.使用SEND发送

  

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Intent intent = 
new
Intent(Intent.ACTION_SEND);
String[] tos = { 
"fdafdafa@gmail.com"
};
String[] ccs = { 
"gegeff@gmail.com"
};
String[] bccs = {
"fdafda@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:///sdcard/Chrysanthemum.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来进行多附件的发送

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Intent intent = 
new
Intent(Intent.ACTION_SEND_MULTIPLE);
String[] tos = { 
"wingfourever@gmail.com"
};
String[] ccs = { 
"tongyue@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:///sdcard/Chrysanthemum.jpg"
));
imageUris.add(Uri.parse(
"file:///sdcard/Desert.jpg"
));     
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
intent.setType(
"image/*"
);
intent.setType(
"message/rfc882"
);
Intent.createChooser(intent, 
"Choose Email Client"
);
startActivity(intent);</uri></uri>

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

 

 

  如下是在三星galaxy tab 2 10.1上面的运行效果:

  Android 调用系统Email发送带多附件的邮件

  

  对于使用邮件发送,在很多的Android应用中都会使用到,跟微博分享一样的常见。大家也只需要稍微了解下就可以了,毕竟还是很容易的。

 

转载于:https://www.cnblogs.com/mochaMM/p/5168781.html

你可能感兴趣的文章
关于Cursor的moveToFirst和moveToNext的意义
查看>>
个人--工资划分5份
查看>>
有关文件下载的文件名
查看>>
史上最详细的wamp配置虚拟域名步骤
查看>>
oracle 授权
查看>>
lv扩展磁盘空间
查看>>
java8之stream流的基本操作
查看>>
二维数组计算协方差java
查看>>
SpringBoot下Redis相关配置是如何被初始化的
查看>>
为你的AliOS Things应用增加自定义cli命令
查看>>
MongoDB 创建基础索引、组合索引、唯一索引以及优化
查看>>
百度PaddlePaddle常规赛NLP赛道火热开启
查看>>
稳了!这才是cookie,session与token的真正区别
查看>>
OSChina 周二乱弹 —— 假期余额已不足!
查看>>
前端那些事之React篇--helloword
查看>>
ios的google解析XML框架GDataXML的配置及使用
查看>>
netty-当一个客户端连接到来的时候发生了什么
查看>>
PHP_5.3.20 源码编译安装PHP-FPM
查看>>
在51CTO三年年+了,你也来晒晒
查看>>
js控制图片等比例缩放
查看>>