template mail javamailsender example enviar java spring email spring-boot javamail

javamailsender - spring email template



Spring Boot 1.2.5.RELEASE-Envío de correo electrónico a través de Gmail SMTP (2)

Parece que es una regresión. #3624 para investigar el problema. Gracias por el proyecto de muestra!

En primer lugar, debo decir que enviar correos electrónicos con 1.2.0.RELEASE funciona bien

application.properties:

spring.mail.host = smtp.gmail.com spring.mail.username = *****@gmail.com spring.mail.password = **** spring.mail.properties.mail.smtp.auth = true spring.mail.properties.mail.smtp.socketFactory.port = 465 spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.socketFactory.fallback = false

pox.xml

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.0.RELEASE</version> <relativePath/> </parent>

.......

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>


Después de cambiar la versión principal a 1.2.5.El envío de correos electrónicos de RENFE no funcionó

Docs dice: Si spring.mail.host y las bibliotecas relevantes (como se define en spring-boot-starter-mail) están disponibles, se crea un JavaMailSender predeterminado si no existe ninguno.


Así que he agregado

<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>

No ha ayudado y luego lo he reemplazado por

<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.4</version> </dependency>

También lo he intentado

spring.mail.host = smtp.gmail.com spring.mail.username = *****@gmail.com spring.mail.password = **** spring.mail.port = 465

Resultado igual.

No es un problema crear y configurar @Bean manualmente. Pero quiero usar toda la belleza de Spring Boot.
Por favor apúntame a mis errores.

Gracias por adelantado


Parece que hay un cambio de regresión / comportamiento en Java Mail. El cambio está en 1.5.3 y 1.5.4. Tu aplicación funciona con Boot 1.2.0 ya que usa Java Mail 1.5.2. No funciona con Boot 1.2.5 ya que usa Java Mail 1.5.4.

El problema en 1.5.3+ parece ser que el transporte SMTP se conecta en el puerto 465 y GMail espera un protocolo de enlace SSL. Java Mail piensa incorrectamente que no está utilizando SSL, por lo que nunca inicia el intercambio de mensajes y el intento de conexión (eventualmente) expira. Puede convencer a Java Mail para que haga lo correcto al ser explícito sobre el uso de SSL. Agregue lo siguiente a application.properties :

spring.mail.properties.mail.smtp.ssl.enable = true