今天接到一个任务:在Android端实现邮箱注册账号的功能,so决定先实现一个邮件发送器。下面是实现该demo的具体步骤,在此分享出来。
在Andoird中,实现发送邮件主要有两种方式:
- 调用其他APP(QQ邮箱、gmail邮箱、自带邮箱等)。
- 直接使用第三方服务器发送邮件。(就是直接使用QQ邮箱它们的服务器)。
如果使用第一种方式实现的话,需要有其他APP的支持,用户体验极差。在本文中,将使用第三方服务器(163邮箱)进行邮件发送APP的实现。
首先,使用sun公司开源的支持android端发送邮件的开源库。导入方法如下:
compile 'com.sun.mail:android-mail:1.6.0'
compile 'com.sun.mail:android-activation:1.6.0'
主要代码如下:
邮件实体类:
import java.util.Properties;
public class MailSender {
private String mailServerHost; //发送邮件的服务器IP
private String mailServerPort; //发送邮件的服务器端口
private String username; //邮件服务器用户名
private String password; //邮件服务器密码
private String fromAddress; //发送者地址
private String toAddress; //接收者地址
private boolean validate = false; //是否需要身份认证
private String subject; //邮件主题
private String content; //邮件内容
private String[] attachFileNames; //附件
public MailSender(String mailServerHost, String mailServerPort, String username, String password,
String fromAddress, String toAddress, boolean validate,
String subject, String content, String[] attachFileNames) {
this.mailServerHost = mailServerHost;
this.mailServerPort = mailServerPort;
this.username = username;
this.password = password;
this.fromAddress = fromAddress;
this.toAddress = toAddress;
this.validate = validate;
this.subject = subject;
this.content = content;
this.attachFileNames = attachFileNames;
}
/**
* 获取邮件相关配置
* @return Properties
*/
public Properties getProperties() {
Properties p = new Properties();
p.put("mail.smtp.host", this.mailServerHost);
p.put("mail.smtp.port", this.mailServerPort);
p.put("mail.smtp.auth"