springboot如何发送邮件

本文档展示了如何在Spring Boot应用中集成并使用`spring-boot-starter-mail`依赖来发送电子邮件。首先,添加了相关依赖,并配置了QQ邮箱的SMTP服务器信息。接着,提供了两个示例,一是发送简单的文本邮件,二是创建包含HTML内容和附件的复杂邮件。确保在发送邮件时,内容不能为空。

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

  1. 首先加入pom依赖
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
 </dependency>

2.编写配置文件

spring:
  mail:
    host: smtp.qq.com
    username: xxx@qq.com
    password: 自己的授权码
    properties.mail.smtp.ssl.enable: true(QQ邮箱特有的,开启加密验证)

点击开启发送短信会得到授权码,QQ邮箱->设置->账户->往下滑
在这里插入图片描述

3.进行发送邮件即可

import javax.mail.internet.MimeMessage;
import java.io.File;

@SpringBootTest
class SpringbootTaskApplicationTests {

    @Autowired
    JavaMailSender javaMailSender; //邮件发送

    /**
     *  简单邮件 发送
     */
    @Test
    void contextLoads() {

        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
    //邮件设置值
        simpleMailMessage.setSubject("测试邮件-java邮件任务");//邮件主题
        simpleMailMessage.setText("测试邮件,测试java发送邮件任务......");//邮件内容
        simpleMailMessage.setTo("xxxxxxxx@qq.com");//邮件发给谁
        simpleMailMessage.setFrom("xxxxxxxxx@qq.com"); //邮件来自于谁
        javaMailSender.send(simpleMailMessage);
}

    /**
     * 复杂邮件
     */
    @Test
    void contextLoads2() throws Exception {

        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage,true);
        //邮件设置值
        mimeMessageHelper.setSubject("测试邮件-java邮件任务(复杂邮件)");//邮件主题
        mimeMessageHelper.setText("<b style='color:red'>测试邮件,测试java发送邮件任务......</b>",true);//邮件内容
        //邮件 附件
        mimeMessageHelper.addAttachment("ceshi1.jpg",new File("C:\\Users\\57132\\Desktop\\ceshi1.png"));
        mimeMessageHelper.addAttachment("ceshi2.jpg",new File("C:\\Users\\57132\\Desktop\\ceshi2.png"));
        mimeMessageHelper.setTo("xxxxxx@qq.com");//邮件发给谁
        mimeMessageHelper.setFrom("xxxxxx@qq.com"); //邮件来自于谁
        javaMailSender.send(mimeMessage);
    }
}


请注意!发送邮箱时邮箱的内容不能为空!

即!

mimeMessageHelper.setText("不能为空",true);//邮件内容
Spring Boot发送邮件通常通过JavaMail API实现,Spring Boot提供了一个方便的集成方式,无需额外配置SMTP服务器。以下是使用Spring Boot发送邮件的基本步骤: 1. 添加依赖:在`pom.xml`文件中添加Spring Boot Actuator和JavaMail的相关依赖,例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 2. 配置邮箱服务:在application.properties或application.yml文件中设置SMTP服务器的信息,如主机名、端口、用户名、密码等: ```properties spring.mail.host=smtp.example.com spring.mail.port=587 spring.mail.username=your-email@example.com spring.mail.password=your-password spring.mail.protocol=smtp spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true ``` 3. 创建邮件消息:创建一个Java类,继承`AbstractMessageConverter`或使用`SimpleMailMessage`来构建邮件内容: ```java import org.springframework.mail.SimpleMailMessage; SimpleMailMessage message = new SimpleMailMessage(); message.setTo("recipient@example.com"); message.setFrom("sender@example.com"); message.setSubject("Hello from Spring Boot"); message.setText("This is a test email."); ``` 4. 使用Java配置或注解:在Spring Boot应用中,你可以使用Java配置类配置一个`JavaMailSender`实例,然后在需要的地方发送邮件: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; @Autowired private JavaMailSender javaMailSender; public void sendEmail(SimpleMailMessage message) { javaMailSender.send(message); } ``` 或者使用`@Autowired`自动注入并在方法上使用`@SendMail`注解: ```java @RestController public class EmailController { @Autowired private JavaMailSender javaMailSender; @PostMapping("/send-email") @SendMail public ResponseEntity<String> sendMessage(SimpleMailMessage message) { // ...处理并返回响应 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值