37. 发送电子邮件

Spring 框架提供了一种使用JavaMailSender接口发送电子邮件的简单抽象方法,而 Spring Boot 为它提供了自动配置以及启动程序模块。

Tip

有关如何使用JavaMailSender的详细说明,请参见reference documentation

如果spring.mail.host和相关库(由spring-boot-starter-mail定义)可用,则如果不存在默认库JavaMailSender,则将创建该库。可以通过spring.mail名称空间中的配置项进一步自定义发送方。有关更多详细信息,请参见MailProperties

特别是,某些默认超时值是无限的,您可能需要更改该值,以避免线程被无响应的邮件服务器阻塞,如以下示例所示:

spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000

也可以使用 JNDI 中的现有Session配置JavaMailSender

spring.mail.jndi-name=mail/Session

设置jndi-name时,它优先于所有其他与会话相关的其他设置。