傳送電子郵件

Spring Framework 使用 JavaMailSender 介面為傳送電子郵件提供了抽象,Spring Boot 也為其提供了自動配置和 starter 模組。

有關如何使用 JavaMailSender 的詳細說明,請參閱參考文件

如果 spring.mail.host 和相關庫(由 spring-boot-starter-mail 定義)可用,則在不存在預設 JavaMailSender 時會建立一個預設的。傳送方可以透過 spring.mail 名稱空間下的配置項進一步定製。有關更多詳情,請參閱 MailProperties

特別是,某些預設的超時值是無限的,您可能需要更改它們以避免執行緒被無響應的郵件伺服器阻塞,如下例所示

  • Properties

  • YAML

spring.mail.properties[mail.smtp.connectiontimeout]=5000
spring.mail.properties[mail.smtp.timeout]=3000
spring.mail.properties[mail.smtp.writetimeout]=5000
spring:
  mail:
    properties:
      "[mail.smtp.connectiontimeout]": 5000
      "[mail.smtp.timeout]": 3000
      "[mail.smtp.writetimeout]": 5000

也可以使用來自 JNDI 的現有 Session 配置 JavaMailSender

  • Properties

  • YAML

spring.mail.jndi-name=mail/Session
spring:
  mail:
    jndi-name: "mail/Session"

當設定了 jndi-name 時,它優先於所有其他與 Session 相關的設定。