发送邮件
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 相关设置。