`

Android 调用系统Email --多附件

 
阅读更多

众所周知,在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:455245521@qq.com"));  
                data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");  
                data.putExtra(Intent.EXTRA_TEXT, "这是内容");  
                startActivity(data); 

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


2.使用SEND发送

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

		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);

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


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

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


转载请注明出处:http://blog.csdn.net/ml3947/


---------------------------------

最近公司平板上面的一个项目,要使用Email把日志导出的多页图片进行发送,也有其他的微博分享之类的功能。所以就稍微看了下调用Email发送多附件的,顺带着整理了下,写了这篇博客。


这周末本来打算和同事出去玩的,但貌似要下两天雨,如果真的是这样的话,我也会继续进行写JavaFX的相关博文。



分享到:
评论

相关推荐

    commons-email-1.5.jar

    《Android应用中使用Apache Commons Email库发送邮件》 在Android应用程序开发中,有时我们需要集成邮件发送功能,以便向用户发送验证码、通知或者提供其他服务。Apache Commons Email库是一个强大的Java库,它简化...

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

    以下是三种调用Email的方式: 1. 使用ACTION_SENDTO发送: 这种方式适用于无附件的邮件发送。通过设置Intent的动作为ACTION_SENDTO,并指定数据URI为"mailto:"开头的邮件地址。例如: ```java Intent data = new ...

    Android-一个Android下发送Email的库

    此外,由于Android的多进程特性,可能需要考虑邮件发送的并发控制和状态同步。 总之,"Android-一个Android下发送Email的库"是一个方便开发者在Android应用中实现邮件功能的工具,通过封装复杂的SMTP协议和JavaMail...

    android调用系统各个模块的代码汇总

    ### Android调用系统各个模块的代码汇总 在Android开发中,我们经常需要调用系统的不同模块来实现特定功能,如发送短信、拨打电话、启动地图导航等。这些操作可以通过简单的Intent来实现。以下是对给定内容中涉及的...

    android email

    7. **第三方库**:除了使用系统内置的Intent方式,还可以使用第三方库如JavaMail API或者Android JavaMail库来实现更复杂的邮件功能,如发送带附件的邮件、使用SMTP服务器等。这些库允许开发者在没有邮件客户端的...

    Android应用源码之AndroidEmail(邮件收发)-IT计算机-毕业设计.zip

    这个“Android应用源码之AndroidEmail(邮件收发)”项目是一个很好的学习资源,适用于Android开发的学习者,特别是那些正在进行毕业设计的学生。它提供了完整的源代码,帮助开发者了解如何在Android应用程序中集成...

    android崩溃日志保存SDCARD-本地阅读-并发送email

    在Android开发中,当应用程序遇到不可预见的错误导致崩溃时,收集和分析崩溃日志是定位问题的关键步骤。本教程将介绍如何在Android应用中实现崩溃日志的自动保存到SD卡,本地阅读以及通过电子邮件发送。这有助于...

    Android抓取系统日志,然后作为文本附件发送邮件

    本文将详细介绍如何在Android应用中实现抓取警告(warning)级别及以上级别的系统日志,并将这些日志作为文本附件通过邮件发送。这一功能对于提升测试效率、快速响应问题具有重要意义。 首先,我们需要了解Android...

    android_javaemail

    在Android开发中,有时我们需要实现邮件发送功能,但系统级别的邮件应用可能无法满足所有需求,例如,用户可能没有安装或配置任何邮件客户端。在这种情况下,我们可以利用JavaMail API来实现邮件发送,它允许我们在...

    Android自带的邮件发送代码

    虽然Android系统内核包含了一些对`javaMail`的支持,但默认并不包含完整库,因此通常需要引入第三方库,如`AndroidAsyncSMTP`或`javamail-android`,通过Gradle依赖来集成: ```gradle dependencies { ...

    android 发送email所需jar包

    在Android平台上发送电子邮件,开发者通常会遇到需要引入外部库或者jar包的情况,因为Android系统本身并未内置SMTP(Simple Mail Transfer Protocol)服务来直接发送邮件。本文将详细介绍如何在Android项目中使用jar...

    Android应用源码之AndroidEmail(邮件收发).rar

    AndroidEmail源码可能包含了如何配置和触发系统通知,以及如何处理用户对通知的响应,例如打开邮件或删除邮件。 9. **邮件过滤与分类** 对于邮件列表,应用可能提供了按照日期、发件人、主题等条件进行筛选和排序...

    android email 源代码

    这个"android email源代码"的资源,很可能是为了帮助开发者深入理解Android系统中如何处理邮件收发的内部机制,以及如何构建一个完整的邮件应用。下面将详细介绍相关知识点。 1. **Android Intents与Intent Filters...

    自动发送邮件 不调用系统的

    "自动发送邮件不调用系统"的主题意味着我们要实现一个独立的邮件发送功能,而不是依赖操作系统内置的邮件客户端。这篇博文链接指向的是一个可能的实现方案,虽然具体的代码没有给出,但我们可以根据这个主题探讨相关...

    Android Email程序源码.rar

    7. **Android SDK API**:源码会调用Android SDK的各种API,如`ContentResolver`用于查询邮件数据,`NotificationManager`用于显示通知,`AlarmManager`用于定时任务等。 8. **权限管理**:在`Manifest.xml`中,你...

    android发送EMail附近也可发送

    而使用Intent则更简单,只需要调用系统内置的邮件应用即可,但不能控制邮件的具体发送过程。 以下是使用Intent发送邮件的基本步骤: 1. 创建一个Intent对象,并指定其类型为ACTION_SENDTO。 ```java Intent intent...

    不调用系统邮箱发送邮件

    "不调用系统邮箱发送邮件"这个主题意味着我们要探讨一种不依赖操作系统内置邮件客户端或者SMTP服务器,而是通过编程的方式实现邮件发送的方法。这种方法通常涉及使用编程语言的库或API来直接处理SMTP(简单邮件传输...

    android crash

    2. 收集崩溃信息:当捕获到异常时,调用`android.os.Process`的`dumpsys`方法获取系统状态和内存信息,同时收集设备信息(如设备型号、Android版本等)。 3. 生成日志文件:将所有收集的信息整合到一个文本文件(如...

    基于android的照片分享系统的开发与.doc

    6. **发送邮件**:系统集成邮件发送功能,通常需要使用Android的Email API或SMTP协议,通过建立网络连接,将照片作为附件发送给指定的电子邮件地址。 7. **用户界面设计**:为了提供良好的用户体验,UI设计至关重要...

Global site tag (gtag.js) - Google Analytics