The Spring Framework provides an easy abstraction for sending email using the
JavaMailSender
interface and Spring Boot provides auto-configuration for it as well as
a starter module.
Tip | |
---|---|
Check the reference documentation for a detailed
explanation of how you can use |
If spring.mail.host
and the relevant libraries (as defined by
spring-boot-starter-mail
) are available, a default JavaMailSender
is created if none
exists. The sender can be further customized by configuration items from the spring.mail
namespace, see the
MailProperties
for more
details.
In particular, certain default timeout values are infinite and you may want to change that to avoid having a thread blocked by an unresponsive mail server:
spring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.writetimeout=5000
It is also possible to configure a JavaMailSender
with an existing Session
from JNDI:
spring.mail.jndi-name=mail/Session
When a jndi-name
is set, it takes precedence over all other Session-related settings.