1.导入jarbao
链接:微云邮件jar包下载 密码:6w42d9
2开启QQ邮箱权限QQ邮箱
开启得到16位STMP口令(要点)
3.编写Java发送Email程序
package com.xmx.util;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.Random;
/**
* @Auther: 郑兴源
* @DateTime : 2021-12-06 上午 08:51
* @descriptoin:
*/
public class Mail {
public void sendMail(String mail) throws MessagingException {
// 创建Properties 类用于记录邮箱的一些属性
Properties props = new Properties();
// 表示SMTP发送邮件,必须进行身份验证
props.put("mail.smtp.auth", "true");
//此处填写SMTP服务器
props.put("mail.smtp.host", "smtp.qq.com");
//端口号,QQ邮箱端口587
props.put("mail.smtp.port", "587");
// 此处填写,写信人的账号(自行修改)
props.put("mail.user", "88888888@qq.com");
// 此处填写16位STMP口令(自行修改)
props.put("mail.password", "eqyoyiupvoythibg");
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
// 设置发件人
InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
message.setFrom(form);
// 设置收件人的邮箱 ----这里mail是sendMail(String mail)中的参数 (自行修改)
InternetAddress to = new InternetAddress(mail);
message.setRecipient(MimeMessage.RecipientType.TO, to);
// 设置邮件标题
message.setSubject("图书管理系统验证码注册");
//随机数字6位
Random random = new Random();
String result = "";
for (int i = 0; i < 6; i++) {
result += random.nextInt(10);
}
// 设置邮件的内容体
message.setContent("注册的验证是:" + result, "text/html;charset=UTF-8");
//存验证码在服务器---可应用与servlet中
// HttpSession session = req.getSession();
// session.setAttribute("trueyzm", result);
//以秒为单位,即在没有活动30分钟后,session将失效
//session.setMaxInactiveInterval(30*60);
// System.out.println("yzm->:" + result);
// 最后当然就是发送邮件啦
Transport.send(message);
}
}
4.测试
@Test
//邮箱测试
public void test10() throws MessagingException {
Mail mail = new Mail();
mail.sendMail("12236***5@qq.com");
System.out.println("邮件以发送,请接收...");
}
谢谢阅读!