文章出處

發郵件是一個很常見的功能,代碼本身并不復雜,有坑的地方主要在于各家郵件廠家的設置,下面以qq個人郵箱以及騰訊企業郵箱為例,講解如何用spring-boot發送郵件:

一、添加依賴項

compile 'org.springframework.boot:spring-boot-starter-mail'

 

二、application.yml配置

2.1 QQ個人郵箱

spring:
  application:
    name: mail-demo
  mail:
    host: smtp.qq.com
    username: xxxx@qq.com # 這里填寫個人的qq郵箱
    password: ***** # 注:這里不是qq郵箱的密碼,而是授權碼
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true

生成授權碼的方法參考下圖:
點擊查看原圖

 點擊查看原圖

點擊查看原圖

2.3 QQ企業郵箱

spring:
  application:
    name: mail-demo
  mail:
    host: smtp.exmail.qq.com
    username: xxxx@puscene.com # 這里填寫企業郵箱
    password: **************** # 這里填寫企業郵箱登錄密碼
    properties:
      mail.smtp.auth: true
      mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
      mail.smtp.socketFactory.fallback: false
      mail.smtp.socketFactory.port: 465  

 企業郵箱如果未開啟安全登錄,就不需要授權碼了,直接填寫登錄密碼即可。如果開啟了安全登錄,參考下圖:

則password這里,需要填寫客戶端專用密碼

 

三、 發送代碼示例

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;

/**
 * Created by 菩提樹下的楊過 on 12/08/2017.
 */
@SpringBootApplication
public class MailDemo {

    public static void main(String[] args) {
        
        ConfigurableApplicationContext context = SpringApplication.run(MailDemo.class, args);
        JavaMailSender mailSender = context.getBean(JavaMailSender.class);

        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("菩提樹下的楊過<xxxxxxxx@xxx.com>"); //注意這里的發送人郵箱,要與yml配置中的username相同,否則驗證不通過

        message.setTo("xxx@126.com");
        String[] ccList = new String[]{"xxxx@126.com", "yang.junming@xxxx.com"};//這里添加抄送人名稱列表
        message.setCc(ccList);
        String[] bccList = new String[]{"yyyy@126.com", "yjmyzz@xxxx.com"};//這里添加密送人名稱列表
        message.setBcc(bccList);
        message.setSubject("主題:簡單郵件(QQ個人郵件)-抄送,密送測試");
        message.setText("測試郵件內容");
        mailSender.send(message);
        System.out.println("發送成功!");
    }
}

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()