这里以 QQ 邮箱为例
QQ 邮箱账号设置
登录 QQ 邮箱
进入 设置 页面
选择 账户
开启 IMAP/SMTP
服务
获取授权码
创建 EmailUtil 工具类
EmailUtil.java
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class EmailUtil {
// 收件人邮箱
private String email;
// 验证码
private String code;
public static void sendEmail(String email, String code) {
// 发件人邮箱
String emailFrom = "发件人邮箱";
// 设置邮箱主机(QQ 邮箱)
String emailHost = "smtp.qq.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", emailHost);
properties.setProperty("mail.smtp.auth", "true");
try {
if (emailHost.equals("smtp.qq.com")) {
MailSSLSocketFactory mailSSLSocketFactory = new MailSSLSocketFactory();
mailSSLSocketFactory.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", mailSSLSocketFactory);
}
Session session = Session.getDefaultInstance(properties, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailFrom, "授权码");
}
});
// 创建邮件对象
Message message = new MimeMessage(session);
// 设置发件人
message.setFrom(new InternetAddress(emailFrom));
// 设置接收人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
// 设置邮件主题
message.setSubject("来自 Java 发送的邮件");
// 设置邮件内容
String content = "<html><head></head><body><h1>验证码:</h1><h3>" + code + "</h3></body></html>";
message.setContent(content, "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试发送
@Test
public void emailSendTest() {
EmailUtil.sendEmail("xxxxxxxxxx@xx.com", "Hello Java Email");
}
END