Google 在发表 Android 手机平台时,强调的是超强大的网络支持能力,因此,无论通过 GPRS、3G的电信网络或者是Wifi的无线WLAN网络,都能够发EMAIL。  
  
  发送邮件中使用的Intent 行为为 android.content.Intent.ACTION_SEND 。实际上在 Android 上使用的邮件发送服务是调用Gmail程序,而非直接使用SMTP的Protocol 。现在介绍本篇需要使用到的功能清单:

•验证用户输入是否为正确的邮箱格式;
•用户可以先把手动输入邮箱,也可以长按邮箱文本框跳到联系人那里找到联系人,得到联系人的邮箱,后返回;
•发送邮件。

•邮件发送程序并不复杂,主要是在 EditText 、Button 控件的构建,通过构造一个自定义的 Intent(android.content.Intent.ACTION_SEND)作为传送 Email 的 Activity 之用,在该Intent中,还必须使用 setType()来决定 Email的格式,使用 putExtra() 来置入寄件入(EXTRA_EMAIL)、主题(EXTRA_SUBJECT)、邮件内容(EXTRA_TEXT)以及其他Email的字段(EXTRA_BCC、EXTRA_CC)。代码如下:

myButton.setOnClickListener(new OnClickListener() {
           
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            
                Intent mailIntent=new Intent(android.content.Intent.ACTION_SEND);
               
                mailIntent.setType("plain/test");
                strEmailReciver=new String[]{ myEditText.getText().toString() };
               
                strEmailCC=new String[]{myEditText2.getText().toString()};
               
                strEmailSubject=myEditText3.getText().toString();
               
                strEmailBody=myEditText4.getText().toString();
                mailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver);
               
                mailIntent.putExtra(android.content.Intent.EXTRA_CC, strEmailCC);
               
                mailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, strEmailSubject);
               
                mailIntent.putExtra(android.content.Intent.EXTRA_TEXT, strEmailBody);
               
            startActivity(Intent.createChooser(mailIntent, getResources().getString(R.string.send)));
               
               
            }
        });

在Android中发送Email有许多种写法,本篇例子只是其中之一。下面把其他的方法共享给大家:

• 方法二
Uri uri=Uri.parse("mailto:terryyhl@gmail.com");
            Intent MymailIntent=new Intent(Intent.ACTION_SEND,uri);
            startActivity(MymailIntent);

•方法三
Intent testintent=new Intent(Intent.ACTION_SEND);
            String[] tos={"terryyhl@gmail.com"};
            String[] ccs={"kalaicheng@hotmail.com"};
            testintent.putExtra(Intent.EXTRA_EMAIL, tos);
            testintent.putExtra(Intent.EXTRA_CC, ccs);
            testintent.putExtra(Intent.EXTRA_TEXT, "这是内容");
            testintent.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
            testintent.setType("message/rfc822");
            startActivity(Intent.createChooser(testintent, "发送"));

•方法四,传附件,这里以SD卡的音乐文件为例
Intent testN=new Intent(Intent.ACTION_SEND);
              testN.putExtra(Intent.EXTRA_SUBJECT, "标题");
              testN.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/music.mp3");
              startActivity(Intent.createChooser(testN, "发送"));

     
•使用javamail。这里我就不介绍javamail的实现方法了。

•由于目前模拟器未内置Gmail Client端程序,因此发送Email程序在送出数据后,模拟器上会发出 “No Application can perform this action”,本人没有Android手机,故无法测试,还请有Android手机的园友能够在测试后,将结果反馈给我,谢谢。

作者“软件技术分享”

关于Android发送邮件的更多相关文章

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

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

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

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

  3. android发送邮件

    众所周知,在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外. 在Android中,调用Email有三种类型的Intent:     Intent.ACT ...

  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. 爬虫入门 beautifulsoup库(一)

    先贴一个beautifulsoup的官方文档,https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id12 requ ...

  2. 剑指offer 面试题38 字符串的排列

    我惯用的dfs模板直接拿来套 class Solution { public: vector<string> Permutation(string str) { if(str.empty( ...

  3. 我的reshape观

    reshape(1,2)把结果分成1块,每一块2个元素 reshape(2,1)把结果分成2块,每一块1个元素 reshape(-1,1)把结果分成任意块,每一块1个元素 reshape(1,-1)把 ...

  4. Python单元测试unittest与HTMLTestRunner报告生成

    本文为简单介绍,使用python自带模块unittest来进行单元测试 首先我们有一个需要测试的类,employee.py  定义了涨薪的方法.我们需要测试这个类的功能是否正确. class Empl ...

  5. Spring Security技术栈开发企业级认证与授权(一)环境搭建

    本项目是基于慕课网的Spring Security技术栈开发企业级认证与授权,采用IDEA开发,本文章用来记录该项目的学习过程. 慕课网视频:https://coding.imooc.com/clas ...

  6. 快捷键(二):VSCode

    1,打开命令板:F1或Ctrl+Chift+P 2,新建文件:Ctrl+N 3,文件间切换:Ctrl+Tab 4,新开界面:Ctrl+Shift+N 5,关闭当前窗口:Ctrl+W 6,关闭界面:Ct ...

  7. java将小写金额转换为大写的工具类

    public class Tool {             private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分";      ...

  8. 【WPF学习】第十四章 事件路由

    由上一章可知,WPF中的许多控件都是内容控件,而内容控件可包含任何类型以及大量的嵌套内容.例如,可构建包含图形的按钮,创建混合了文本和图片内容的标签,或者为了实现滚动或折叠的显示效果而在特定容器中放置 ...

  9. Azure虚拟机网站部署 防火墙设置

    唯一需要注意的是当你的网站设置的端口不是默认的80的时候,需要在防火墙那里将你新设置的端口设置为allow 先要到云的后台设置  “入站安全规则”--> 将你的网站端口设置为Allow 1.通过 ...

  10. git按需过滤提交文件的一个细节

    问题场景 用git管理代码时,作为git小白的我总会遇到一些无法理解的问题,在请教了一些高手后终于解开了疑惑,参考以下场景: 1.比如我们已在电脑1上完成用vs编辑项目.添加.提交到服务器的完整流程, ...