17. Spring Boot 发送邮件

使用Spring Boot发送邮件需要满足下面几个步骤:

  1. 添加发送邮件的依赖
  2. 配置邮件发送端的基本信息
  3. 添加邮件发送工具服务类
  4. 在Controller中实现通过调用REST发送邮件

1. 添加发送邮件的依赖


        
            org.springframework.boot
            spring-boot-starter-mail
        

2. 配置邮件发送端的基本信息

在项目的application.properties文件中进行配置:

# 发送邮件的设置
spring.mail.host=smtp.163.com
spring.mail.username=发信邮箱
spring.mail.password=密码或者授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

需要注意的是,对于QQ邮箱,首先要开启账户的smtp服务,要经过一大堆验证,然后在密码处填写授权码。而163邮箱之类,就省了这个麻烦。

3. 添加发送邮件的服务层

@Service
public class MailUtilService {
    @Autowired
    private JavaMailSender mailSender;

    public void sendSimpleMail() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("[email protected]");
        message.setTo("[email protected]");
        message.setSubject("主题:简单邮件");
        message.setText("测试邮件内容");
        try {
            mailSender.send(message);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

在服务层注入邮件发送接口类,创建一个发送简单内容的方法,是现在后续的RES请求响应中调用。

4. 在Controller中实现通过调用REST发送邮件

在REST响应类中注入邮件服务层的实例,然后调用接口进行触发。实现了邮件的实际发送。

/**
 * 系统内部使用的REST服务
 * */
@RestController
@RequestMapping("/system/")
@Slf4j
public class SystemInterController {

    @Autowired
    private MailUtilService mailUtilServiceService;

    @PostMapping("/mail/simple/test")
    public void sendSimpleMail(){
        log.info("准备发送!");
        mailUtilServiceService.sendSimpleMail();
        log.info("已经发送了邮件!");
    }

}

最后发送后的效果如图所示:


17. Spring Boot 发送邮件_第1张图片
收到测试邮件

你可能感兴趣的:(17. Spring Boot 发送邮件)