赞
踩
Spring 框架通过使用 JavaMailSender接口,Spring Boot 为其提供了自动配置以及启动模块
他们是三种邮件协议。简单来说,POP3和IMAP是用来从服务器上下载邮件的。SMTP适用于发送或中转信件时找到下一个目的地。所以我们发送邮件应该使用SMTP协议。
邮箱客户端授权码是为了避免邮箱密码被盗后,盗号者通过客户端登录邮箱而设计的安防功能。
maven仓库spring-boot-starter-mail
pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
发送简单文本邮件
@Autowired JavaMailSenderImpl mailSender; @Async public void SendEmail(){ // 发送简单邮件 SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); // 邮件主题 simpleMailMessage.setSubject("主题"); // 邮件内容 simpleMailMessage.setText("正文"); // 发送给谁 simpleMailMessage.setTo("1233@163.com"); // 从哪里来 simpleMailMessage.setFrom("11111@163.com"); mailSender.send(simpleMailMessage); } // 启动类开启异步注解功能,及时给前台返回结果 @EnableAsync
发送带附件的邮件
public void SendEmail() throws MessagingException { // 一个复杂的邮件 MimeMessage mimeMessage = mailSender.createMimeMessage(); // 组装内容 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,"utf-8"); helper.setSubject("你好"); helper.setText("<a>正文<a>",true); // 附件 helper.addAttachment("1.jpg", new File("C:\\Users\\yh\\Desktop\\20210425165104.png")); helper.addAttachment("2.jpg", new File("C:\\Users\\yh\\Desktop\\20210425165207.png")); helper.setTo("1234@163.com"); helper.setFrom("11111@163.com"); mailSender.send(mimeMessage); }
yml
spring:
mail:
username: 11111@163.com
password: 开启smtp服务获取密码
host: smtp.163.com
#不同邮件后缀 host不同
注意开启服务
spring boot整合邮件服务并不难,就是踩到坑的时候挺烦的,但这也是学习新知识所必须经历的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。