发送电子邮件
Spring Framework 提供了一个使用`JavaMailSender`接口发送电子邮件的抽象,Spring Boot 也为此提供了自动配置和启动器模块。
有关如何使用`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 相关的设置。