导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
获取邮箱授权码
设置服务邮箱,以QQ邮箱为例
- 进入QQ邮箱,选择设置
- 下拉到下图所示位置,点击生成授权码
发送邮件
- application.yml
spring: mail: username: # 用户名,邮箱账号 password: # 授权码 # 主机地址 host: smtp.qq.com # 开启SSL安全连接 properties: mail: smtp: ssl: enable: true
- JavaMailSender
JavaMailSender
用于发送邮件 - SimpleMailMessage
SimpleMailMessage
可以用来发送一些简单邮件(没有附件),@Autowired private JavaMailSender mailSender; public void sendMessage() { SimpleMailMessage message = new SimpleMailMessage(); message.setTo("xxxxxx@163.com"); // 接收邮箱账号 message.setFrom("xxxxxx@qq.com"); // yml配置文件中邮箱账号 message.setText("邮箱测试..."); message.setSubject("mail test"); mailSender.send(message); }
- MimeMessage
MimeMessage
用于发送复杂消息public void sendMultMessage() { MimeMessage mimeMessage = mailSender.createMimeMessage(); // 设置发送复杂邮件消息 MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); mimeMessageHelper.setTo("xxxxxx@163.com"); mimeMessageHelper.setFrom("xxxxxx@qq.com"); mimeMessageHelper.setSubject("发送复杂邮件测试"); mimeMessageHelper.setText("<h1>邮件测试</h1><p>通过设置第二个参数为true,可发送含有html标签的文本</p>", true); mimeMessageHelper.addAttachment("图片.jpg", FileUtil.file("static/emotion.jpg")); mailSender.send(mimeMessage); }
补充
- 以上demo,还使用了
hutool
与lombok
依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.1</version> </dependency>