Spring Boot 发送邮件全解析

本文详细介绍了如何在Spring Boot中配置和使用邮件服务,涵盖了QQ、163、Gmail和Outlook邮箱的SMTP设置,并展示了发送纯文本、带附件和富文本邮件的代码示例。
摘要由CSDN通过智能技术生成

Spring Boot 发送邮件全解析

 

1.前言

欢迎阅读 Spring Boot 2 实战系列 电子邮件虽然近几年有点“退火”,但是在开发中依然有举足轻重的地位。在比较正式的场合我们依然通过电子邮件来传递信息和回执。今天我们就来学一下如何在 Spring Boot 下发送电子邮件。

2. 依赖

Java 发送邮件依赖 jakarta 项目(原 javaEE)提供的 jakarta.mail组件, Maven 坐标:

 
  1. <dependency>

  2. <groupId>com.sun.mail</groupId>

  3. <artifactId>jakarta.mail</artifactId>

  4. <version>1.6.4</version>

  5. <scope>compile</scope>

  6. </dependency>

Spring 官方 又将其进行进一步封装成开箱即用的 spring-boot-starter-mail 项目:

 
  1. <dependency>

  2. <groupId>org.springframework.boot</groupId>

  3. <artifactId>spring-boot-starter-mail</artifactId>

  4. </dependency>

在 Spring Boot 项目中我们引入上面的 spring-boot-starter-mail依赖即可为你的项目集成邮件功能。接下来我们来对邮件功能进行参数配置。

3. 邮箱配置

spring-boot-starter-mail 的配置由 MailProperties 配置类提供。在 application.yml 配置文件中以 spring.mail 为前缀。我们来看看都有哪些配置项。

 
  1. # 字符集编码 默认 UTF-8

  2. spring.mail.default-encoding=UTF-8

  3. # SMTP 服务器 host qq邮箱的为 smtp.qq.com 端口 465 587

  4. spring.mail.host=smtp.qq.com

  5. # SMTP 服务器端口 不同的服务商不一样

  6. spring.mail.port=465

  7. # SMTP 服务器使用的协议

  8. spring.mail.protocol=smtp

  9. # SMTP服务器需要身份验证 所以 要配置用户密码

  10.  
  11. # 发送端的用户邮箱名

  12. spring.mail.username=business@felord.cn

  13. # 发送端的密码 注意保密

  14. spring.mail.password=oooooxxxxxxxx

  15. # 指定mail会话的jndi名称 优先级较高 一般我们不使用该方式

  16. spring.mail.jndi-name=

  17. # 这个比较重要 针对不同的SMTP服务器 都有自己的一些特色配置该属性 提供了这些配置的 key value 封装方案 例如 Gmail SMTP 服务器超时配置 spring.mail.properties.mail.smtp.timeout= 5000

  18. spring.mail.properties.<key> =

  19. # 指定是否在启动时测试邮件服务器连接,默认为false

  20. spring.mail.test-connection=false

针对不同的邮箱有不同的配置,所以我们介绍几种我们常用的邮箱配置,可以直接拿来配置。

但是请注意很多邮箱需要手动开启 SMTP 功能,请务必确保该功能打开。如果在公有云上部署请避免使用 25 端口。

3.1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Spring Boot 的邮件发送功能来发送电子邮件。首先,你需要在项目的依赖中添加 Spring Boot 的邮件依赖。在 `pom.xml` 文件中添加以下代码: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 接下来,你需要在配置文件中配置邮件相关的属性。在 `application.properties`(或 `application.yml`)文件中添加以下属性: ```properties # 邮件服务器主机名 spring.mail.host=your-mail-host # 邮件服务器端口 spring.mail.port=your-mail-port # 邮件发送者用户名 spring.mail.username=your-username # 邮件发送者密码 spring.mail.password=your-password # 邮件发送者地址 spring.mail.from=your-email-address ``` 现在,你可以在你的代码中使用 `JavaMailSender` 接口来发送邮件。你可以注入 `JavaMailSender` 接口的实例,并使用 `send()` 方法发送邮件。以下是一个简单的示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ``` 你可以在需要发送邮件的地方调用 `sendEmail()` 方法,并传入收件人地址、邮件主题和邮件内容。 这是使用 Spring Boot 发送邮件的基本步骤。你可以根据自己的需求进行进一步的定制和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值