メール送信

Spring Framework は、JavaMailSender インターフェースを使用してメールを送信するための抽象化を提供し、Spring Boot は、自動構成とスターターモジュールを提供します。

JavaMailSender の使用方法の詳細については、リファレンスドキュメントを参照してください。

spring.mail.host および関連するライブラリ(spring-boot-starter-mail で定義されている)が使用可能な場合、存在しない場合はデフォルトの JavaMailSender が作成されます。送信者は、spring.mail 名前空間の構成アイテムによってさらにカスタマイズできます。詳細については、MailProperties (Javadoc) を参照してください。

特に、特定のデフォルトのタイムアウト値は無限であり、次の例に示すように、応答しないメールサーバーによってスレッドがブロックされるのを避けるために、これを変更することができます。

  • プロパティ

  • 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 が設定されると、他のすべてのセッション関連の設定よりも優先されます。