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
时,它优先于所有其他与会话相关的其他设置。