最近工作比较闲,出于个人兴趣,写了个发送邮件的工具类。本次是通过163邮箱发送邮件,
相关jar包:javax.mail.*
package com.youxu.util;
import java.util.Properties;
import javax.mail.Authenticator;
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 javax.mail.internet.MimeMessage.RecipientType;
public class MailUtils {
/**
* 这是一个工具类,各方面都兼容
*
* @param to
* 收件人邮箱
* @param code
* 必要时的用户验证
* @throws Exception
*/
public static void sendMail(String to, String code) throws Exception {
Properties props = new Properties();
// 设置服务器
props.setProperty("mail.smtp.host", "smtp.163.com");
// 设置权限,这是由于163.126.等等,公共邮件为了发垃圾邮件需要设置的,
// 不然会报异常,553 authentication is
// required,smtp13,EcCowACXHjuxivpVRZHkCA--.51163S2 1442482875
props.put("mail.smtp.auth", "true");
// 1.Session对象.连接(与邮箱服务器连接)
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 设置发邮件帐号和密码
return new PasswordAuthentication("y****@163.com", "*****");
}
});
// 2.构建邮件信息:
Message message = new MimeMessage(session);
// 发件人:
message.setFrom(new InternetAddress("***@163.com"));
// 收件人:
message.setRecipient(RecipientType.TO, new InternetAddress(to));
// 设置邮件的标题
message.setSubject("******");
// 设置正文,通过HTML标签设置内容格式
message.setContent("<h1>*********</h1><h3>***********</h3>",
"text/html;charset=UTF-8");
// 3.发送对象
Transport.send(message);
}
}
代码简单明了,只需调用即可,参数看情况添加,
与大家共勉,谢谢!!!