springboot框架集成邮箱功能

大致步骤还是遵循三部曲(导包配置)

1、导包

首先导入必要的包,版本默认和web版本一致

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

2、配置

首先开启邮箱的SMTP服务:

首先打开自己的qq邮箱,然后打开设置中的账户

 然后通过短信开启POP3/SMTP服务,记下自己的授权码

 然后使用IMAP服务

最后配置项目的配置文件,端口号要用默认的25,如下:

spring:
  mail:
    host: smtp.qq.com
    username: qq邮箱
    password: 授权码
    port: 25
    default-encoding: utf-8

3、测试

测试就直接上代码了

public class MyTest {

    @Resource
    JavaMailSenderImpl javaMailSender;
    
    @Test
    public void handler(){
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
            mimeMessageHelper.setFrom("发送人邮箱","发送人昵称");
            mimeMessageHelper.setTo("接收人邮箱");
            mimeMessageHelper.setSubject("标题");
            mimeMessageHelper.setText("内容");
            javaMailSender.send(mimeMessage);
            System.out.println("发送完成");
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

}

4、封装应用

首先封装一个实体类包括如下属性

public class MailVo {
    private String to;//发送给谁
    private String from;//谁发送的
    private String personal;//用户民
    private String subject;//主题
    private String content;//内容
}

 然后通过一个实体对象来请求邮件

@Resource
JavaMailSender javaMailSender;

@PostMapping("/send")
CommonResult send(MailVo mailVo){
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    try {
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
            helper.setFrom(mailVo.getFrom(),mailVo.getPersonal());
            helper.setTo(mailVo.getTo());
            helper.setSubject(mailVo.getSubject());
            helper.setText(mailVo.getContent(),true);
            javaMailSender.send(mimeMessage);
     } catch (MessagingException e) {
            e.printStackTrace();
     } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
     }
}

这样就可以成功发送邮件了。当然邮件的内容不止文字的形式,还可以发送html格式等等。

 5、成功

 

原文地址:https://www.cnblogs.com/mvpmvp/p/13684473.html