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