基於Spring Boot發送 mail

基於Spring Boot 發送 mail

  • 發送短信須要短信api接口 例如雲片(連接)
  • 在不少地方例如用戶註冊後的郵箱激活,郵箱發送驗證碼等都會應用
  • 在javaEE中其實有提供專門的包用於發送郵件,官方也有提供專門的api --JavaMail(連接)
  • 在springboot 中爲郵件發送提供了專門的包

假設從qq郵箱發一封郵件到163郵箱,大體步驟以下html

這個過程設計到了不少個協議java

  • SMTP 協議全稱爲Simple Mail Transfer Protocol譯做簡單郵件傳輸協議,是一個基於TCP/IP的應用層協議
  • 默認端口號 25
  • 它定義了郵件客戶端軟件於SMTP服務器之間,以及SMTP服務器之間的通訊規則
  • 簡單的來說,就是用於收發郵件的

  • 而用戶登錄郵箱客戶端以後須要讀取郵件,此時就須要POP3/IMAP協議
  • POP3 協議全稱爲Post Office Protocol,譯做郵局協議,它定義了郵件客戶端與POP3之間的通訊規則
  • IMAP 是對 OPO3 的擴展,功能更強,做用相似,這裏就不贅述了

具體使用(以qq郵箱爲例)web

  • 在QQ郵箱用開啓 POP3/SMTP服務(默認關閉),在設置-->帳戶中能夠查看

  • 生成受權碼

  • 建立Spring Boot 項目,引入依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
複製代碼
  • 在配置文件中配置基本的配置信息
# smtp服務器地址
spring.mail.host=smtp.qq.com
# 協議類型
spring.mail.protocol=smtp
spring.mail.username=發件郵箱
# 受權碼
spring.mail.password=使用發件郵箱生成的受權碼
spring.mail.default-encoding=UTF-8
spring.mail.port=465
# 加密工具
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
複製代碼
  • 測試發送一個簡單郵件
@Autowired
    MailSender mailSender;

    @Test
    public void contextLoads() {
        SimpleMailMessage msg = new SimpleMailMessage();
        //收件人
        msg.setTo("收件人郵箱(具體郵箱地址)");
        //郵件主題
        msg.setSubject("這是一封測試郵件");
        //發件人
        msg.setFrom("發件人郵箱(具體郵箱地址)");
        //郵件內容
        msg.setText("hello mail!");
        mailSender.send(msg);
    }
複製代碼
相關文章
相關標籤/搜索