發送電子郵件

Spring Framework 提供了使用 JavaMailSender 介面發送電子郵件的抽象層,而 Spring Boot 也為其提供了自動組態和 starter 模組。

請參閱參考文件以詳細了解如何使用 JavaMailSender

如果 spring.mail.host 和相關的程式庫(如 spring-boot-starter-mail 所定義)可用,則在不存在預設 JavaMailSender 的情況下,將會建立一個預設的 JavaMailSender。發送器可以通過 spring.mail 命名空間中的組態項目進一步自訂。有關更多詳細信息,請參閱MailProperties

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

  • 屬性

  • 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

  • 屬性

  • YAML

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

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