发送邮件
Spring Framework 通过使用 JavaMailSender 接口为发送电子邮件提供了一个抽象层,而 Spring Boot 则为其提供了自动配置以及一个 starter 模块。
提示
有关如何使用 JavaMailSender 的详细说明,请参阅参考文档。
如果 spring.mail.host
和相关的库(由 spring-boot-starter-mail
定义)可用,且不存在现有的 JavaMailSender,则会创建一个默认的 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
时,它将优先于所有其他与会话相关的设置。