具体使用方法请看:

http://www.oschina.net/code/snippet_12_983

1.[代码]GMailSender.java

package org.apache.android.mail;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.io.ByteArrayInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.security.Security;

import java.util.Properties;

public class GMailSender extends javax.mail.Authenticator {

private String mailhost = "smtp.gmail.com";

private String user;

private String password;

private Session session;

static {

Security.addProvider(new org.apache.harmony.xnet.provider.jsse.JSSEProvider());

}

public GMailSender(String user, String password) {

this.user = user;

this.password = password;

Properties props = new Properties();

props.setProperty("mail.transport.protocol", "smtp");

props.setProperty("mail.host", mailhost);

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.port", "465");

props.put("mail.smtp.socketFactory.port", "465");

props.put("mail.smtp.socketFactory.class",

"javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.socketFactory.fallback", "false");

props.setProperty("mail.smtp.quitwait", "false");

session = Session.getDefaultInstance(props, this);

}

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(user, password);

}

public synchronized void sendMail(String subject, String body,

String sender, String recipients) throws Exception {

MimeMessage message = new MimeMessage(session);

DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));

message.setSender(new InternetAddress(sender));

message.setSubject(subject);

message.setDataHandler(handler);

if (recipients.indexOf(',') > 0)

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));

else

message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));

Transport.send(message);

}

public class ByteArrayDataSource implements DataSource {

private byte[] data;

private String type;

public ByteArrayDataSource(byte[] data, String type) {

super();

this.data = data;

this.type = type;

}

public ByteArrayDataSource(byte[] data) {

super();

this.data = data;

}

public void setType(String type) {

this.type = type;

}

public String getContentType() {

if (type == null)

return "application/octet-stream";

else

return type;

}

public InputStream getInputStream() throws IOException {

return new ByteArrayInputStream(data);

}

public String getName() {

return "ByteArrayDataSource";

}

public OutputStream getOutputStream() throws IOException {

throw new IOException("Not Supported");

}

}

}

android 谷歌邮箱,Android 使用 SMTP 发送邮件 (Gmail)相关推荐

  1. 如何正确看谷歌文档android,谷歌推出Android谷歌文档离线查看功能

    新浪科技讯 北京时间2月3日早间消息,谷歌(微博)本周针对Android系统推出了谷歌文档的离线查看功能.不过通过这一功能,用户只能查看文档,而无法编辑文档. 谷歌正不断对谷歌文档服务进行改进,使其成 ...

  2. 如何利用谷歌邮箱别名功能获取无限 Gmail 邮箱

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 我们注册有些国外的服务时,是不能用国内邮箱注册的,这时一个 Gmail 邮箱就显得很有必要.而有时候我们会需要注册 ...

  3. android 自定义relativelayout,Android布局(RelativeLayout、TableLayout等)使用方法

    本文介绍 Android 界面开发中最基本的四种布局LinearLayout.RelativeLayout.FrameLayout.TableLayout 的使用方法及这四种布局中常用的属性. Lin ...

  4. PHPMailer配置QQ邮箱163邮箱和谷歌邮箱发送邮件

    开启网易和QQ邮箱的SMTP服务 由于网易和QQ邮箱的SMTP服务默认是不开启的,谷歌的是开启的,所以小伙伴们要是选择了网易和QQ邮箱的话是需要登录到邮箱去开启的. 网易邮箱 登录到网易邮箱后如下图所 ...

  5. WP Mail SMTP配置谷歌邮箱

    最近发现网站注册时无法发送邮件给用户,查找了一些资料后发现原来主机不支持mail()函数,所以导致无法发送邮件.但是这个问题可以通过安装插件的方式进行解决,WP邮件SMTP是解决这个问题的一个常用插件 ...

  6. android email分析,QQ邮箱Android客户端产品体验报告

    QQ邮箱Android客户端产品体验报告 概览 手机:魅族MX3 操作系统:Flyme OS 3.5.2(A19220) 体验产品:QQ邮箱Android客户端 软件版本:4.0 需求分析 目标人群: ...

  7. blat+stunnel实践-命令行smtp发送邮件-通过QQ邮箱第三方客户端登录授权码

    2019独角兽企业重金招聘Python工程师标准>>> 背景: 工作中有一个业务需要每个月25号发送一个下月使用的文件给相关人员. 在此之前是用QQ邮箱的定时发送功能,先一次性地编缉 ...

  8. android qq邮箱格式,android手机怎么使用QQ邮箱 android QQ邮箱设置流程图解

    大家在使用android手机时都发现,其邮箱功能是十分强大的,实时接收邮件,并有通知提醒,像看短信似的.这样方便的邮箱功能是每个邮箱使用者的福音.但是邮箱有那么多种,android手机上默认的是使用g ...

  9. Lumen / Laravel 使用网易邮箱 SMTP 发送邮件

    Laravel 是目前最流行的PHP框架,而Lumen 是 Laravel 的精简版,主要用于接口开发. Laravel 邮件发送服务基于 Symfony 组件 Swift Mailer. 本文记录了 ...

最新文章

  1. 石锤!谷歌排名第一的编程语言,死磕这点,程序员都收益
  2. SpringMVC 如何配置aop
  3. mtk android lcm调试
  4. 学习JS的正则表达式
  5. 达梦数据库卡慢简单分析
  6. Maven 打成 Webjar的方法
  7. 复旦大学在职MBA项目2011年度学费调整通知
  8. C++中内存泄漏的检测方法介绍
  9. mysql 存储过程 大于等于_mysql 存储过程 大于
  10. 面试题--------5、==与equals的区别
  11. 【生信进阶练习1000days】day9-BSgenome和AnnotationHub
  12. IP地址点分十进制转化为二进制以字符串的形式输出
  13. 977计算机考研,中国海洋大学 977计算机技术与软件工程专业课经验分享
  14. python 实现 n 次方_python实现pow函数(求n次幂,求n次方)
  15. uva 10099 The Tourist Guide nyoj 1019 亲戚来了【单个路线最大流【最短路算法】】
  16. css样式的灵异事件
  17. PHP抽奖小程序/微信红包封面抽奖小程序/抽奖小程序开源源码
  18. Linux内核性能测试工具全景图
  19. OSChina 周一乱弹 ——有2个小混蛋大晚上……
  20. Hadoop面试45个题目及答案

热门文章

  1. 学习笔记(04):Python网络编程并发编程-什么是socket
  2. opencv的pnp()算法接口是相对于3D点,输出的是相机与3D点之间的R和T
  3. python 线程超时设置_python 条件变量Condition(36)
  4. python列表split_Python-split()函数实例用法讲解
  5. PostgreSQL增强版命令行客户端(pgcli)
  6. 选择排序法对数组进行排序
  7. 理解文档对象模型(3)
  8. 专家观点:即使在云中 硬件同样至关重要
  9. mahout贝叶斯算法开发思路(拓展篇)1
  10. 如何查看数据文件或者Log文件是否增长过?