亲测有用,大佬勿喷
上示例:
/**
* 邮件发送
* @param email 接收人的邮箱地址
* @param elContent 邮件内容
* @param title 邮件标题
*/
public static void send(String email,String elContent,String title){
// 配置参数
Properties prop = new Properties();
// 发件人的邮箱的SMTP 服务器地址(不同的邮箱,服务器地址不同,如139和qq的邮箱服务器地址不同)
prop.setProperty("mail.host", "******"); // 需实际情况调整
// 使用的协议(JavaMail规范要求)
prop.setProperty("mail.transport.protocol", "smtp");
// 需要请求认证
prop.setProperty("mail.smtp.auth", "true");
//添加发送邮件时的端口 默认为25 // 需实际情况调整
prop.put("mail.smtp.port", "25");
prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.put("mail.smtp.socketFactory.port", "25");
// 使用JavaMail发送邮件的5个步骤
// 1、创建session
Session session = Session.getInstance(prop);
// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
Transport ts = null;
try {
// 2、通过session得到transport对象
ts = session.getTransport();
// 3、使用邮箱的用户名和密码连接邮件服务器(不同类型的邮箱不一样,网易邮箱输入的是用户名和密码,这里我用的qq邮箱,输入的是邮箱用户名和smtp授权码,smtp授权码可登陆邮箱,进入设置启动smtp服务后获取)
// 发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。(1、smtp服务器地址 2、邮箱用户名 3、邮箱密码)
ts.connect("******", "*******", "*********"); // 需实际情况调整
// 4、创建邮件
Message message = createSimpleMail(session,email,elContent,title);
// 5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} finally {
try {
// 关闭transport对象
ts.close();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
/**
* 创建一封只包含文本的邮件
* @param session 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
* @param email 接收邮件人的邮箱地址
* @param elContent 邮件内容
* @param title 邮件标题
* @return 邮件对象
* @throws MessagingException
*/
public static MimeMessage createSimpleMail(Session session,String email,String elContent,String title)
throws MessagingException {
// 创建邮件对象
MimeMessage message = new MimeMessage(session);
// 指明发件人(同上的邮箱用户名)
message.setFrom(new InternetAddress("*********)); // 需实际情况调整
// 指明收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(email));
// 邮件的标题
message.setSubject(title);
// 邮件的文本内容
message.setContent(elContent, "text/html;charset=UTF-8");
return message;
}