用到的JAVAMAIL的JAR,从以下地址下载:
https://download.youkuaiyun.com/download/hqbvqv/10307538
发送邮件用到的是QQ的SMTP服务器,需要使用授权码发送.这个可以在QQ邮箱里面设置好.
void SendMail(String strContent)
{
// 配置
Properties prop=new Properties();
// 设置邮件服务器主机名,这里是163
prop.put("mail.host","smtp.qq.com" );
// 发送邮件协议名称
prop.put("mail.transport.protocol", "smtp");
// 是否认证
prop.put("mail.smtp.auth", true);
try {
// SSL加密
MailSSLSocketFactory sf = null;
sf = new MailSSLSocketFactory();
// 设置信任所有的主机
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
// 创建会话对象
Session session = Session.getDefaultInstance(prop, new Authenticator() {
// 认证信息,需要提供"用户账号","授权码"
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("smtp账号", "授权码");
}
});
// 是否打印出debug信息
session.setDebug(true);
// 创建邮件
Message message = new MimeMessage(session);
// 邮件发送者
message.setFrom(new InternetAddress("发送人地址"));
// 邮件接受者
message.addRecipient(Message.RecipientType.TO, new InternetAddress("接收人地址"));
// 邮件主题
message.setSubject("邮件标题");
String content = strContent;
message.setContent(content, "text/html;charset=UTF-8");
// Transport.send(message);
// 邮件发送
Transport transport = session.getTransport();
transport.connect();
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
注意:加入android studio的时候,如果函数不放到线程里面执行,需要加入如下代码:
if(android.os.Build.VERSION.SDK_INT > 9)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
}
并且在andriodmanifest.xml里面加入INTERNET访问权限才行.
<uses-permission android:name="android.permission.INTERNET" />