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

在Android中,调用Email有三种类型的Intent:
     Intent.ACTION_SENDTO  无附件的发送
     Intent.ACTION_SEND  带附件的发送
     Intent.ACTION_SEND_MULTIPLE  带有多附件的发送

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

1.使用SENTTO发送

  

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发送

  1. 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来进行多附件的发送

  1. 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了。其实还是很简单的。

android发送邮件的更多相关文章

  1. android 发送邮件--实现 send email for android

    Android 发送邮件消息 用途:发送验证码,通过邮箱找回密码 不需要调用客户端直接使用代码进行发送 本项目使用到的jar包–本文结尾会附带下载链接 activation.jar additionn ...

  2. Android 发送邮件以及定时发送邮件的实现

    本文以腾讯企业邮箱为例,展示如何发送邮件 及相关问题  选择腾讯企业邮箱是因为腾讯企业邮箱一般都是开启了smtp服务 项目地址:https://gitee.com/bimingcong/MySendE ...

  3. 关于Android发送邮件

    Google 在发表 Android 手机平台时,强调的是超强大的网络支持能力,因此,无论通过 GPRS.3G的电信网络或者是Wifi的无线WLAN网络,都能够发EMAIL. 发送邮件中使用的Inte ...

  4. Android开发之发送邮件功能的实现(源代码分享)

    Android开发中可能会碰到如何发送邮件的困扰,之前我也查了相关的文档,博友们也分享了不少的发送邮件的办法,总共有3种把,我仔细阅读了下,发现有的讲的太过复杂跟麻烦,不够清晰,我今天就来分享下我认为 ...

  5. Android开发之发送邮件功能的实现(源码分享)

    Android开发中可能会碰到怎样发送邮件的困扰,之前我也查了相关的文档,博友们也分享了不少的发送邮件的办法.总共同拥有3种把,我细致阅读了下,发现有的讲的太过复杂跟麻烦,不够清晰.我今天就来分享下我 ...

  6. Android代码速查,写给新手的朋友们[转]

    原文地址:http://www.open-open.com/lib/view/open1397286499090.html 0 android 创建按钮 Button button = new But ...

  7. Android使用Java Mail API发送邮件

    最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...

  8. Android 使用 Gmail 来发送邮件

    Android 使用 Gmail 来发送邮件 1. [代码]SendMail.java package org.apache.android.mail; import android.app.Acti ...

  9. android使用微软EWS发送邮件

    通常我们在android使用javamail发送邮件,可是很多时候我们需要连接Exchange服务(很多公司内部邮件服务器采用,并且未开通smtp服务)来发送邮件,这时候我们就要用到微软的 ews-j ...

随机推荐

  1. Android studio及eclipse中的junit单元測试

    转载请标明出处:http://blog.csdn.net/nmyangmo/article/details/51179106 前一段时间有人问我单元測试的相关内容,我稍作总结做日志例如以下: 由于我接 ...

  2. 微信小程序 (node) warning: possible EventEmitter memory leak detected

    小程序 (node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setM ...

  3. Hadoop-2.4.1学习之怎样确定Mapper数量

    MapReduce框架的优势是能够在集群中并行运行mapper和reducer任务,那怎样确定mapper和reducer的数量呢,或者说怎样以编程的方式控制作业启动的mapper和reducer数量 ...

  4. js实现页面跳转的两种方式

      CreateTime--2017年8月24日08:13:52Author:Marydon js实现页面跳转的两种方式 方式一: window.location.href = url 说明:我们常用 ...

  5. 设置SSH编码为中文

    http://www.qzz.in/?post=198下面是详细方法: 方法1: vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB18030" ...

  6. 用prerender-spa-plugin插件Vue项目优化SEO做ssr服务端渲染及预渲染

    今天在做公交的时候没干,用手机看看文章,偶然发现了一个关于Vue优化seo的文章,我先是在Vue的官方文档看了一篇关于Vue做SEO优化的文章. 上面提到了nuxt.js这个框架,这个框架我做过一个小 ...

  7. DEDECMS 添加栏目图片

    当我们一个栏目列表都用缩略图来表示产,而不仅仅只是文字,如果没有这项功能会非常麻烦,网上有很多这方面的资料,但是都试过了有很多问题,自己研究一下,测试基本通过.需要新加字段 typeimg 后台执行S ...

  8. Intellij IDEA配置优化

    1. 在线激活 安装IntelliJ IDEA 2016.1.2版本后,在联网状态下激活.Help --> Register,选择lisence server,粘贴地址http://idea.i ...

  9. php漏洞修复 禁用函数

    别人利用此PHP函数可以对系统进行相关操作 1.打开php.ini找到 ; http://php.net/disable-functions 2.修改添加内容如下 disable_functions ...

  10. unity Editor下自启动

    [InitializeOnLoad] 加上这个特性,并且在静态构造函数里写上内容.即可在Unity启动的时候自启动这个Editor脚本