Springboot快速实现邮件发送

本文介绍了如何在Spring Boot应用中配置163邮箱,并利用JavaMailSender发送邮件,包括设置SMTP、pop3配置,创建Email实体类和EmailService进行邮件发送的详细步骤。
摘要由CSDN通过智能技术生成
1.引入spring-boot-starter-mail依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2.application.yml中写入邮箱的基本配置

根据自己的信息填写相应的配置,我这里用的是163邮箱,开通pop3服务后就有授权码了

spring:
  mail:
    #smtp服务主机
    host: smtp.163.com
    #服务协议
    protocol: smtp
    # 编码集
    default-encoding: UTF-8
    #发送邮件的账户
    username: ****@163.com
    #授权码
    password: ******
    test-connection: true
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true

至此,邮箱的配置已完成.

3.创建邮箱实体类

这里使用一个简洁的实体类(包含收件人列表,邮件主题,邮件内容),使用lombok简化开发

@Data
public class Email {
    private String[] user;
    private String subject;
    private String content;
}
4.发送邮件实现代码

创建一个Service类,注入JavaMailSender类型的对象,这个对象含有邮件发送的的方法send,之后通过@Value读取yml文件中的发邮件人的账号,创建SimpleMailMessage对象,并设置一系列发送邮件必要的参数.

@Service
public class EmailService {
    @Resource
    private JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String senderName;

    public void sendMail(Email email){
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setFrom(senderName);
        // 邮件接收人
        mailMessage.setTo(email.getUser());
        // 邮件主题
        mailMessage.setSubject(email.getSubject());
        // 邮件内容
        mailMessage.setText(email.getContent());
        mailSender.send(mailMessage);
    }
}
5.编写controller测试

注入EmailService,set方法写入测试数据

@RestController
public class EmailController {

    @Autowired
    EmailService emailService;
    
	@GetMapping("/testsendmail")
    public void toMail(){
        Email email = new Email();
        email.setUser(new String[]{"####@163.com"});
        email.setSubject("测试");
        email.setContent("hello.this is my email demo");
        emailService.sendMail(email);
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值