50--Spring Boot发送邮件任务

springboot项目邮件任务

在spring boot项目中使用邮件发送消息,比如注册用户时验证邮箱...

开发步骤:

  • 引入依赖
  • springboot自动配置MailSenderAutoConfiguration
  • 手动配置MailPropertis内容
  • 自动装配JavaMailSender
  • 测试邮件发送

1 导入依赖

需要导入依赖:Java Mail Sender

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

2 配置邮件服务于application.yml文件

简单配置

spring:
    mail:
        # 邮件服务地址
        host: smtp.qq.com
        # qq邮箱
        username: *****@qq.com
        # 授权码(注意! 不是邮箱密码)
        password: ******* # 经加密处理
        # other
        properties:
          mail:
            # 是否开启SSL(QQ邮箱请开启)
            smtp:
              ssl:
                enable: true

完整配置

spring:
  mail:
    # 邮件服务地址
    host: smtp.qq.com
    # 邮件服务端口
    port: 465
    # 编码格式
    default-encoding: UTF-8
    # qq邮箱
    username: ****@qq.com
    # 授权码(注意! 不是邮箱密码)
    password: **********
    # 协议
    protocol: smtp
    # other
    properties:
      mail:
        # 是否开启SSL(QQ邮箱请开启)
        smtp:
          ssl:
            enable: true
          required: true
        # 邮件接收时间限制(毫秒)
        timeout: 10000
        # 连接时间显示
        connectiontimeout: 10000
        # 邮件发送时间的限制,单位毫秒
        writetimeout: 10000

3 创建测试类测试

发送简单邮件

在测试类中进行测试要加@SpringBootTest注解

发送简单邮件的时候只支持文本,不支持html

@Autowired
private JavaMailSenderImpl javaMailSender;

@Test
void contextLoads() {
    SimpleMailMessage message = new SimpleMailMessage(); // 创建消息对象
    message.setSubject("标题"); // 标题
    message.setText("正文"); // 只支持文本, 不支持html
    message.setTo("1435430561@qq.com"); // 收件人
    message.setFrom("1435430561@qq.com"); // 发件人
    javaMailSender.send(message); // 发送
}

发送复杂邮件(可带有附件信息)

@Autowired
private JavaMailSenderImpl javaMailSender;
@Test
void testMail() throws MessagingException {
    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setSubject("标题"); // 标题
    // 内容, 第二个参数为true则以html方式发送, 否则以普通文本发送
    helper.setText("<h1 style='red'>内容</h1>", true);
    //发送附件
    helper.addAttachment("1.jpg",new File("C:\\14354\\Desktop\\loading\\加载-063.gif"));
    helper.addAttachment("2.jpg",new File("C:\\14354\\Desktop\\loading\\加载-067.gif"));
    helper.setTo("1435430561@qq.com"); // 收件人
    helper.setFrom("1435430561@qq.com"); // 发件人
    javaMailSender.send(message); // 发送
}

posted on 2020-07-10 10:12  liqiangbk  阅读(282)  评论(0编辑  收藏  举报

导航