【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解析。
相關文章
相關標籤/搜索