首页 > 编程语言 > 详细

使用SpringBoot发邮件+源码简单分析

时间:2021-02-03 18:06:10      阅读:22      评论:0      收藏:0      [点我收藏+]

1. 导入Maven依赖

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

# 父项目中引入的依赖
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>2.4.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>5.3.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>jakarta.mail</artifactId>
      <version>1.6.5</version>
      <scope>compile</scope>
    </dependency>

2. 查看自动配置类MailSenderAutoConfiguration (在IDEA中 Ctrl+N 快捷键可以实现快速搜索类)

@EnableConfigurationProperties(MailProperties.class)
@Import({ MailSenderJndiConfiguration.class, MailSenderPropertiesConfiguration.class })

MailProperties 类中定义了可以在配置文件中配置的属性
MailSenderJndiConfiguration 类中 mailSender() 返回了 JavaMailSenderImpl - 是 JavaMailSender 的实现类实现了邮件发送的接口方法

3. 配置发送邮件需要的配置信息

spring.mail.username=
spring.mail.password=
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true # qq邮箱需要配置ssl

4. 使用单元测试发送邮件

# 注入JavaMailSenderImpl
@Autowired
JavaMailSenderImpl mailSender;

@Test
public void contextLoads1() {
   # 发送简单的邮件
   SimpleMailMessage message = new SimpleMailMessage();
   message.setSubject("hello");
   message.setText("hello email!");

   message.setTo("123@qq.com");
   message.setFrom("123@qq.com");
   mailSender.send(message);
}

@Test
public void contextLoads2() throws MessagingException {
      
   # 发送复杂的邮件 MimeMessageHelper 就是 MimeMessage 的包装器
   MimeMessage mimeMessage = mailSender.createMimeMessage();
   MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); # true表示支持HTML语法

   helper.setSubject("hello");
   helper.setText("<b style=‘color:red‘>hello mail</b>", true);

   //发送附件
   helper.addAttachment("1.jpg",new File(""));

   helper.setTo("123@qq.com");
   helper.setFrom("123@qq.com");
   mailSender.send(mimeMessage);
}

使用SpringBoot发邮件+源码简单分析

原文:https://www.cnblogs.com/weizhiblog/p/14367732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!