Tout d'abord, je dois dire que l'envoi d'e-mails avec 1.2.0.RELEASE fonctionne 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>
Après avoir changé la version parent en 1.2.5.LELEASE l'envoi d'e-mails n'a pas fonctionné
Docs dit: Si spring.mail.Host et les bibliothèques pertinentes (telles que définies par spring-boot-starter-mail) sont disponibles, un JavaMailSender par défaut est créé si aucun n'existe.
J'ai donc ajouté
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
Cela n'a pas aidé et je l'ai remplacé par
<dependency>
<groupId>com.Sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.4</version>
</dependency>
J'ai aussi essayé
spring.mail.Host = smtp.gmail.com
spring.mail.username = *****@gmail.com
spring.mail.password = ****
spring.mail.port = 465
Résultat le même.
Ce n'est pas un problème de créer et de configurer @Bean manuellement. Mais je veux utiliser toute la beauté de Spring Boot.
Veuillez me signaler mes erreurs.
Merci d'avance
Il semble qu'il y ait un changement de régression/comportement dans Java Mail. Le changement est à la fois dans 1.5.3 et 1.5.4. Votre application fonctionne avec Boot 1.2.0 car il utilise Java Mail 1.5.2. Il échoue avec Boot 1.2.5 car il utilise Java Mail 1.5.4.
Le problème dans 1.5.3+ semble être que le transport SMTP se connecte sur le port 465 et GMail attend une prise de contact SSL. Java Mail pense à tort qu'il n'utilise pas SSL, il n'initie donc jamais la poignée de main et la tentative de connexion expire. Vous pouvez convaincre Java Mail de faire le bonne chose en étant explicite sur l'utilisation de SSL. Ajoutez ce qui suit à application.properties
:
spring.mail.properties.mail.smtp.ssl.enable = true
Il semble que ce soit une régression. J'ai créé # 3624 pour enquêter sur le problème. Merci pour l'exemple de projet!