【Spring Boot】24.邮件任务

简介

在咱们开发过程当中,常常能够用到发送邮件的需求,这里咱们来学习如何在springboot中集成邮件服务。html

在使用邮箱模块以前咱们须要了解邮件发送的原理,即用户A和B之间的邮箱传送过程是须要邮件服务器进行中转的,了解这一点以后咱们开始邮件服务的集成。java

集成邮件

  1. 引入场景启动器
pom.xml
 
  1. 配置帐户信息
application.yml
spring:
  mail:
    username: 1016037677@qq.com
    password: aaauhkiqvqlpvbecf
    host: smtp.qq.com

auhkiqvqlpvbecfd是受权码,你应该使用本身的帐户去设置,从QQ邮箱的帐户出配置邮件服务器的时候您都会了解到相关的东西。spring

一样的,能够经过自动配置类以及属性类了解能够配置的属性。安全

这样,咱们就能够准备发送邮件测试了。springboot

邮件发送

简单消息

咱们就直接在controller里面发送邮件。服务器

controller/HelloController.class
@Autowired
    JavaMailSenderImpl javaMailSender;

    @GetMapping("/send")
    public String send(){
        SimpleMailMessage message = new SimpleMailMessage();
        // email set
        message.setSubject("通知");
        message.setText("这是发送给您的一封邮件");
        // send for
        message.setTo("1016037686@qq.com");
        // who send
        message.setFrom("1016037677@qq.com");
        // send
        javaMailSender.send(message);
        return "send success!";
    }

这样1016037686@qq.com帐户就能够收到1016037677@qq.com帐户发送的邮件信息了。若是您运行过程当中发生了错误,能够尝试开启QQ安全链接设置:app

spring:
  mail:
    username: 1016037677@qq.com
    password: uauhkiqvqlpvbecf
    host: smtp.qq.com
    properties:
      smtp:
        ssl:
          enable: true

复杂消息邮件

@GetMapping("/send2")
    public String send2() throws MessagingException, IOException {
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);


        // email set
        helper.setSubject("通知");
        helper.setText("这是发送给您的一封邮件,请<span style='color:red'>圣诞节查收</span>.", true);

        // 添加附件:先放置本身的文件在项目中
        helper.addAttachment("1.jpg", new ClassPathResource("static/1.jpg").getFile());
        // send for
        helper.setTo("1016037686@qq.com");
        // who send
        helper.setFrom("1016037677@qq.com");
        // send
        javaMailSender.send(message);
        return "send success!";
    }

注意:学习

  1. 咱们使用MimeMessage做为被包装对象,MimeMessageHelper包装复杂类型邮件的发送;
  2. MimeMessageHelper的第二个参数用于指定是否包含多附件;
  3. setText的第二个参数用于标志是不是html代码,这能够保证你的邮件内容遵循html解析。
相关文章
相关标签/搜索