- 通过SpringBoot整合邮件发送,来实现短信发送和接收验证码的功能,通常用来作为手机号登录获取验证码的平替。
- 实测使用不同邮箱发送邮件只需要更改配置文件中的账户、授权码和SMTP服务端口即可。
准备工作
- 注册邮箱——此处使用qq邮箱来发送和接收验证码。
- 开启SMTP服务——在邮箱的设置中开启SMTP服务,获取16位的授权码。
- 创建SpringBoot项目,引入邮件发送的依赖。
1 2 3 4
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
|
开发简单邮件
简单邮件:仅包含邮件标题,邮件正文的普通邮件(无附件,无图片)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @SpringBootTest public class MailTest { @Autowired private JavaMailSender sender;
private String subject = "邮件标题"; private String content = "邮件内容"; private String to = "1330132229@qq.com"; private String from = to;
@Test public void testSimpleMail(){ SimpleMailMessage mail = new SimpleMailMessage(); mail.setSubject(subject); mail.setTo(to); mail.setFrom(from); mail.setText(content); sender.send(mail); System.out.println("邮件发送完毕"); } }
|
开发复杂邮件
复杂邮件:包含邮件标题,邮件正文,附件,图片等的邮件
- API
- JavaMailSender: 发送邮件的客户端
- MimeMessage: 封装复杂邮件的Bean
- sender.createMimeMessage()
- MimeMessageHelper: 封装复杂邮件的辅助工具
- setSubject(标题)
- setText(正文, isHtml)
- setFrom(发送人)
- setTo(接收人)
- addAttachment(附件名, 附件文件)
- 结果预览:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| @SpringBootTest public class MailTest { @Autowired private JavaMailSender sender;
private String subject = "邮件标题"; private String content = "邮件内容"; private String to = "18669513992@163.com"; private String from = to;
@Test public void testSimpleMail(){ SimpleMailMessage mail = new SimpleMailMessage(); mail.setSubject(subject); mail.setTo(to); mail.setFrom(from); mail.setText(content); sender.send(mail); System.out.println("邮件发送完毕"); }
@Test public void testMimeMail() throws MessagingException { MimeMessage mail = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mail,true);
helper.setSubject(subject);
helper.setText(content+"<img src=https://raw.githubusercontent.com/silvan2077/markdown_pic/main/Picgo/20251106171903.png >",true); helper.setTo(to); helper.setFrom(from);
File file = new File("D:\\7jgyre.png"); helper.addAttachment(file.getName(), file);
sender.send(mail); System.out.println("邮件发送完毕"); } }
|