SpringBoot整合mail,发送邮件

327 阅读1分钟

导入依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
	<version>2.3.3.RELEASE</version>
</dependency>

获取邮箱授权码

设置服务邮箱,以QQ邮箱为例

  • 进入QQ邮箱,选择设置 在这里插入图片描述
  • 下拉到下图所示位置,点击生成授权码 获取QQ邮箱授权码

发送邮件

yaml配置

  1. 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);
}
  1. 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);
    }

补充

  1. 以上demo,还使用了hutoollombok依赖
    <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>