# Spring Boot 实战系列 - 发送邮件

使用 spring boot 快速开发发送邮件功能

准备工作

  • pom.xml 文件依赖如下
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
    </dependency>
    <!-- 邮件依赖 start -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    <!-- 邮件依赖 end -->
</dependencies>
  • application.properties 配置文件如下
spring.application.name=spring-boot-mail

# Spring Boot 整合Mail配置
spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com
# qq邮箱授权码
spring.mail.password=xxxxxx
spring.mail.default-encoding=UTF-8

# 邮件发送相关配置
mail.address.to=xxx@qq.com
mail.address.from=xxx@qq.com
  • MailService 代码如下
@Slf4j
@Service
public class MailService {

    @Autowired
    private JavaMailSender javaMailSender;

    @Value("${mail.address.from}")
    private String from;

    public void sendSimpleMail(String[] to, String subject, String text) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(text);
        simpleMailMessage.setSentDate(new Date());
        simpleMailMessage.setTo(to);
        simpleMailMessage.setFrom(from);
        log.info("发送普通邮件,参数:{}", JSON.toJSONString(simpleMailMessage));
        javaMailSender.send(simpleMailMessage);
    }
}
  • Application 启动类代码如下
@SpringBootApplication
public class Application {

    public static void main(String[] args) {

        // 启动
        SpringApplication.run(Application.class, args);
    }

}
  • MailServiceTest 测试类代码如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailServiceTest {

    @Autowired
    private MailService mailService;

    @Value("${mail.address.to}")
    private String to;

    @Test
    public void testSendSimpleMail() {

        String[] tos = to.split(",");
        mailService.sendSimpleMail(tos, "主题-测试", "内容-测试");
    }
}

说明

  • 配置中 spring.mail.password 为授权码,本示例使用QQ邮箱,需要自行去申请授权码
  • 只要依赖 spring-boot-starter-mail ,可以直接使用 JavaMailSender 实例(因为 Spring Boot 自动配置)

本文完。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值