前置准备

使用 QQ 邮箱发送邮件需要先开启 POP3/IMAP/SMTP 服务,并在授权码管理页面生成授权码。

  • 开启位置:QQ 邮箱 → 设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV 服务
  • 生成的授权码作为配置中的 password

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
mail:
host: smtp.qq.com
port: 465
username: 1271631984@qq.com
password: tysatqekxlsbfjig
properties:
mail:
smtp:
auth: true
socketFactory:
class: javax.net.ssl.SSLSocketFactory
fallback: false
port: 465

发送示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void email() {
final String username = "1271631984@qq.com";
final String password = "tysatqekxlsbfjig";
final String to = "2166702512@qq.com";

MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper;
try {
mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setTo(to);
mimeMessageHelper.setFrom(username);
mimeMessageHelper.setSubject("匹配成功!脱离单身系列");
mimeMessageHelper.setText("周*浚 你好,"
+ "\n\n介于你之前在网上对于单身现状的苦恼困惑 "
+ "我司根据你之前所填写信息 现已为你匹配到合适的另一半 "
+ "可通过添加对方qq好友进行进一步了解 QQ:2107886532");
javaMailSender.send(mimeMessage);
System.out.println("发送成功");
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("邮件发送失败");
}
}

小结

  • 密码使用 QQ 邮箱的授权码,不是登录密码
  • 生产环境应将邮件发送封装成独立方法,接收发送对象和内容参数