17. Spring Boot 发送邮件

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

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

1. 添加发送邮件的依赖

<!--添加邮件发送的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

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("xxx@163.com");
        message.setTo("1xxx8@qq.com");
        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("已经发送了邮件!");
    }

}

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


收到测试邮件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容