33 lines
1.4 KiB
Plaintext
33 lines
1.4 KiB
Plaintext
[[io.email]]
|
|
== Sending Email
|
|
The Spring Framework provides an abstraction for sending email by using the `JavaMailSender` interface, and Spring Boot provides auto-configuration for it as well as a starter module.
|
|
|
|
TIP: See the {spring-framework-docs}/integration.html#mail[reference documentation] for a detailed explanation of how you can use `JavaMailSender`.
|
|
|
|
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 {spring-boot-autoconfigure-module-code}/mail/MailProperties.java[`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, as shown in the following example:
|
|
|
|
[source,yaml,indent=0,subs="verbatim",configprops,configblocks]
|
|
----
|
|
spring:
|
|
mail:
|
|
properties:
|
|
"[mail.smtp.connectiontimeout]": 5000
|
|
"[mail.smtp.timeout]": 3000
|
|
"[mail.smtp.writetimeout]": 5000
|
|
----
|
|
|
|
It is also possible to configure a `JavaMailSender` with an existing `Session` from JNDI:
|
|
|
|
[source,yaml,indent=0,subs="verbatim",configprops,configblocks]
|
|
----
|
|
spring:
|
|
mail:
|
|
jndi-name: "mail/Session"
|
|
----
|
|
|
|
When a `jndi-name` is set, it takes precedence over all other Session-related settings.
|