37、发送邮件

Spring Framework 提供了一个使用 JavaMailSender 接口发送电子邮件的简单抽象,Spring Boot 为其提供了自动配置以及一个 starter 模块。

提示

有关如何使用 JavaMailSender 的详细说明,请参阅参考文档

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

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

  1. spring.mail.properties.mail.smtp.connectiontimeout=5000
  2. spring.mail.properties.mail.smtp.timeout=3000
  3. spring.mail.properties.mail.smtp.writetimeout=5000

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

  1. spring.mail.jndi-name=mail/Session

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