Spring Boot 整合邮件发送

本文将介绍如何在Spring Boot项目中整合邮件发送功能。首先,需要在pom文件中添加邮件starter依赖。接着,配置项目中的邮件设置,如服务器地址等。邮件配置可以通过一个map进行,详细配置可参考官方文档。最后,通过注解注入邮件服务,实现邮件发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.pom文件中引入mail的starter依赖

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

2.项目配置文件中设置邮件相关配置

#邮件发送服务器地址
spring.mail.host=smtp.qq.com
#邮件发送服务器端口
spring.mail.port=465
#用户名
spring.mail.username=xxx@qq.com
#密码
spring.mail.password=
spring.mail.default-encoding=utf-8
#开启debug模式,控制台会打印出邮件发送的相关信息
spring.mail.properties.mail.debug=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.starttls.required=false
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000
#邮件socket代理配置
spring.mail.properties.proxySet=true
spring.mail.properties.mail.smtp.socks.host=
spring.mail.properties.mail.smtp.socks.port=

具体可配置属性可以查看类org.springframework.boot.autoconfigure.mail.MailProperties

spring.mail.properties是一个map,它支持更多属性,更详细的配置可以查看官方主页:https://javaee.github.io/javamail/

3.注入org.springframework.mail.javamail.JavaMailSender,使用它发送邮件

    @Autowired
    private JavaMailSender javaMailSender;

    @RequestMapping("/email/send")
    public String sendEmail() {
        //发件人邮箱必须与配置的邮箱一致
        String fromEmail = "xxx@qq.com";
        String toEmail = "xxx@qq.com";
        // 构造Email消息
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(fromEmail);
        message.setTo(toEmail);
        message.setSubject("邮件标题");
        message.setText("邮件内容");
        javaMailSender.send(message);
        return "email send success!";
    }
<think>好的,我现在需要帮助用户了解如何在Spring Boot中集成邮件发送功能。首先,我应该回顾一下Spring Boot的基本配置方式,记得用户提供的引用中提到过@SpringBootConfiguration和配置属性的相关注解,比如@ConfigurationProperties[^2][^3]。邮件发送通常需要配置SMTP服务器信息,所以应该需要用到这些配置属性。 接下来,用户可能需要详细的步骤,比如添加依赖、配置属性文件、编写服务类等。邮件发送Spring Boot中通常通过JavaMailSender来实现,所以需要引入spring-boot-starter-mail依赖。确保在pom.xml或build.gradle中添加正确的依赖项。 然后,配置SMTP服务器的参数,比如主机、端口、用户名、密码,这些可以在application.properties或application.yml中设置,使用@ConfigurationProperties来绑定这些属性。需要检查用户是否了解如何正确配置这些属性,可能需要给出示例代码。 接着,编写邮件发送的服务类,注入JavaMailSender,并实现发送邮件的方法。可能需要处理不同类型的邮件,比如简单文本邮件、HTML邮件或带附件的邮件。这部分需要详细说明,并提供示例代码。 另外,可能需要提到一些常见问题,比如安全配置(SSL/TLS)、测试邮件发送的方法,或者如何处理异常。用户提供的引用中提到了Jenkins的安装方法,虽然不直接相关,但可能用户对部署有经验,可以适当关联。 最后,生成相关问题,帮助用户进一步学习,比如如何发送带附件的邮件,如何配置多个邮件服务器,或者如何集成第三方邮件服务等。确保问题覆盖用户可能感兴趣的扩展主题。 需要验证所有步骤是否符合Spring Boot的最佳实践,并确保示例代码正确,特别是关于配置和JavaMailSender的使用。同时,引用正确的参考文献,比如配置属性的使用,以及Spring Boot的配置类注解[^2]。</think>### Spring Boot整合邮件发送功能教程 #### 1. 添加依赖 在`pom.xml`中引入邮件服务依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` #### 2. 配置SMTP参数 在`application.properties`中配置邮件服务器信息: ```properties # 邮件服务器配置(以QQ邮箱为例) spring.mail.host=smtp.qq.com spring.mail.port=587 spring.mail.username=your_email@qq.com spring.mail.password=your_authorization_code spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true ``` 注:密码需使用邮箱提供的授权码,而非登录密码[^3]。 #### 3. 编写邮件服务类 创建`EmailService`类实现邮件发送逻辑: ```java import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailService { private final JavaMailSender mailSender; public EmailService(JavaMailSender mailSender) { this.mailSender = mailSender; } public void sendSimpleEmail(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom("noreply@example.com"); message.setTo(to); message.setSubject(subject); message.setText(text); mailSender.send(message); } } ``` #### 4. 发送HTML邮件(扩展) ```java public void sendHtmlEmail(String to, String subject, String htmlContent) throws MessagingException { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(to); helper.setSubject(subject); helper.setText(htmlContent, true); // true表示HTML格式 mailSender.send(message); } ``` #### 5. 测试验证 在Controller中添加测试接口: ```java @RestController public class TestController { private final EmailService emailService; public TestController(EmailService emailService) { this.emailService = emailService; } @GetMapping("/test-email") public String testEmail() { emailService.sendSimpleEmail("target@example.com", "测试主题", "测试内容"); return "邮件发送"; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值