位置:首页 > 后端 > java

基于SpringBoot实现邮件发送

chenlong 发布:2021-09-30 13:49:44阅读:

(1)首先看邮箱配置部分,配置获取163邮箱授权码,配置完以后会获取一个16位的授权码,后面会作为密码,详见后文(QQ的自行网上参考)

image.png


image.png


(2)导入Spring邮件依赖

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


(3)基于yml配置相关配置,注:密码非邮箱密码,而是步骤1中获取到的授权码

spring:
  mail:
    #smtp服务主机  qq邮箱则为smtp.qq.com
    host: smtp.163.com
    #服务协议
    protocol: smtp
    # 编码集
    default-encoding: UTF-8
    #发送邮件的账户
    username: 177xxxxxxxx@163.com
    #授权码(步骤1中获取的16位的授权码)
    password: xxxxxxxxxxxxxxxx 
    test-connection: true
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true


(4)在Controller里面添加接口方法

@Autowired
private JavaMailSenderImpl mailSender;

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

@RequestMapping(value = "/sendSimpleMail", method = RequestMethod.POST)
@ResponseBody
public JsonResult<String> sendSimpleMail(@RequestBody ToEmail toEmail) {
    //创建简单邮件消息
    SimpleMailMessage message = new SimpleMailMessage();
    //谁发的
    message.setFrom(from);
    //谁要接收
    message.setTo(toEmail.getTos());
    //邮件标题
    message.setSubject(toEmail.getSubject());
    //邮件内容
    message.setText(toEmail.getContent());
    try {
        mailSender.send(message);
        return JsonResult.success( "发送普通邮件成功");
    } catch (MailException e) {
        e.printStackTrace();
        return JsonResult.failWithMsg("普通邮件方失败");
    }
}


(5)最后调用接口测试,邮件发送成功,查看邮件正常发送

image.png

24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看