Spring Boot支持发送邮件

GitHub:SpringBootDemo
Gitee:SpringBootDemo
微信公众号:
在这里插入图片描述

通过Spring Boot整合邮件任务,支持发送邮件,可以实现服务故障时向指定邮箱发送邮件。

0 开发环境

  • JDK:1.8
  • Spring Boot:2.7.18

1 引入依赖

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

2 配置邮箱地址

2.1 获取授权码

以QQ邮箱为例,点击 【设置】 ,进入设置页面,点击 【账号】 标签,开启 【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】

在这里插入图片描述

开启服务后可以得到一个授权码

在这里插入图片描述

2.2 配置邮箱地址

server:
  port: 8090
spring:
  mail:
    #邮箱地址
    username: 921xxxxxx@qq.com
    #授权码
    password: vsxzxxxxxxxxxcbg
    #发送服务器
    host: smtp.qq.com
    #开启加密授权验证
    properties:
      mail:
        smtp:
          ssl:
            enable: true

这里,QQ邮箱需要开启加密授权验证,网易邮箱不需要

3 测试

新建测试类

@SpringBootTest(classes = MailApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class MailApplicationTest {

    @Autowired
    private JavaMailSenderImpl mailSender;

    @Test
    public void contextLoads() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        //邮件主题
        simpleMailMessage.setSubject("服务故障报警");
        //邮件正文
        simpleMailMessage.setText("xxx服务故障!请及时处理!");
        simpleMailMessage.setTo("921xxxxxx@qq.com");
        simpleMailMessage.setFrom("921xxxxxx@qq.com");

        mailSender.send(simpleMailMessage);
    }
}

这里@Autowired可能会有报错,不用管,只能使用自动装配方式获取JavaMailSenderImpl对象,如果自己new的话,会丢失配置信息。

运行测试类,成功收到邮件,发件人和收件人都是配置的邮箱地址

在这里插入图片描述

4 发送复杂邮件

4.1 新建附件文件

在这里插入图片描述

4.2 调整测试类

@SpringBootTest(classes = MailApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class MailApplicationTest {

    @Autowired
    private JavaMailSenderImpl mailSender;

	//contextLoads()

    @Test
    public void contextLoadsMime() throws MessagingException, UnsupportedEncodingException {
        //复杂邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //组装,支持多文件
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setSubject("复杂服务故障报警");
        //邮件正文,支持html标签
        mimeMessageHelper.setText("<p style='color: red'>xxx服务故障!请及时处理!</p>", true);

        //附件
        //MimeUtility.encodeWord()防止中文乱码
        mimeMessageHelper.addAttachment(MimeUtility.encodeWord("故障附件.txt", "UTF-8", "B"),
                new File("data/故障附件.txt"));
        mimeMessageHelper.addAttachment("error.txt", new File("data/error.txt"));

        mimeMessageHelper.setTo("921xxxxxx@qq.com");
        mimeMessageHelper.setFrom("921xxxxxx@qq.com");

        mailSender.send(mimeMessage);
    }
}

运行测试类,成功收到邮件,正文及附件显示正常

在这里插入图片描述

附件内容正常

在这里插入图片描述

在这里插入图片描述
至此,Spring Boot成功支持发送邮件。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值