2015-07-30 18 views
21

Trước hết, tôi cần phải nói rằng việc gửi email với 1.2.0.RELEASE hoạt động tốtXuân Boot 1.2.5.RELEASE - Gửi E-mail qua Gmail SMTP

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> 


Sau khi thay đổi phiên bản cha mẹ để 1.2.5.RELEASE email gửi đã không làm việc

Documents nói: Nếu spring.mail.host và các thư viện có liên quan (như được định nghĩa bởi spring-boot-starter-mail) có sẵn, JavaMailSender mặc định sẽ được tạo nếu không có exis ts.


Vì vậy, tôi đã thêm

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

Nó đã không giúp và sau đó tôi đã thay thế nó để

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

Ngoài ra tôi đã cố gắng

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

Kết quả tương tự.

Việc tạo và định cấu hình @Bean không phải là vấn đề. Nhưng tôi muốn sử dụng tất cả vẻ đẹp của Spring Boot.
Hãy chỉ cho tôi những sai lầm của tôi.

Cảm ơn trước

+0

Vì vậy, thông báo lỗi là gì? – dunni

+0

@dunni, Không có thông báo lỗi.Người gửi chỉ đơn giản là đóng băng – InsFi

+0

Vì vậy, bạn có một dự án mẫu bằng cách sử dụng Spring Boot 1.2.0 và nó hoạt động. Và sau đó bạn chỉ cần thay đổi để khởi động mùa xuân 1.2.5 và sau đó nó phá vỡ? Không có gì thay đổi giữa hai phiên bản đó đến mức tôi có thể thấy. Bạn có thể chia sẻ dự án không? –

Trả lời

34

Dường như có sự thay đổi hồi quy/hành vi trong Java Mail. The change nằm trong cả 1.5.3 và 1.5.4. Ứng dụng của bạn hoạt động với Boot 1.2.0 vì ứng dụng này sử dụng Java Mail 1.5.2. Nó không thành công với Boot 1.2.5 vì nó sử dụng Java Mail 1.5.4.

Sự cố trong 1.5.3+ dường như là giao thông SMTP kết nối trên cổng 465 và GMail dự kiến ​​bắt tay SSL. Java Mail không chính xác nghĩ rằng nó không sử dụng SSL vì vậy nó không bao giờ bắt đầu bắt tay và cố gắng kết nối (cuối cùng) lần. Bạn có thể thuyết phục Java Mail làm điều đúng bằng cách rõ ràng về việc sử dụng SSL. Thêm thông tin sau vào application.properties:

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

Làm việc cho tôi là tốt. Tôi đã gặp phải lỗi bổ sung do vi-rút của mình. Khi tôi vô hiệu hóa tính năng bảo vệ thư trên thư, thư đã được gửi thành công – Juanal

+0

Câu trả lời này rất hữu ích. Tôi đã sử dụng nó, cùng với việc sử dụng "spring.mail.test-connection = true" của spring-boot, để nhanh chóng giải quyết vấn đề của tôi. –

3

Có vẻ như đó là hồi quy. Tôi đã tạo #3624 để điều tra sự cố. Cảm ơn dự án mẫu!

Các vấn đề liên quan