2009-07-21 41 views
22
javax.mail.MessagingException: Exception reading response; 
    nested exception is: 
     javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
     at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1764) 
     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1523) 
     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:453) 
     at javax.mail.Service.connect(Service.java:313) 
     at javax.mail.Service.connect(Service.java:172) 
     at javax.mail.Service.connect(Service.java:121) 
     at javax.mail.Transport.send0(Transport.java:190) 
     at javax.mail.Transport.send(Transport.java:120) 
     at javaapplication5.SendMail.send(SendMail.java:77) 
     at javaapplication5.SendMailTest.main(SendMailTest.java:17) 
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
     at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:523) 
     at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:744) 
     at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) 
     at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:106) 
     at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 
     at java.io.BufferedInputStream.read(BufferedInputStream.java:237) 
     at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:84) 
     at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1742) 
     ... 9 more 

Ai đó có thể giúp tôi gửi thư bằng API JavaMail sử dụng proxy không?javax.net.ssl.SSLException khi gửi thư bằng cách sử dụng JavaMail

+4

Tôi nghĩ rằng sẽ hữu ích nếu bạn đăng mã bạn đang sử dụng để gửi thư: D –

+0

Mã nào ném ngoại lệ này? – kgiannakakis

+1

Làm thế nào về một số mã sản xuất Stacktrace này? –

Trả lời

7

tôi đã nhận được cùng một ngoại lệ khi cố gắng gửi email qua máy chủ SMTP Hotmail tại smtp.live.com. Dưới đây là các thiết lập mà làm việc cho tôi cuối cùng:

mail.smtp.starttls.enable=true 
mail.smtp.port=587 
2

Nếu bạn không muốn sử dụng SSL, và bạn đang sử dụng smtp thay vì smtps thử các thiết lập này

mail.smtp.starttls.enable=false 
mail.transport.protocol=smtp 
1

Như Andersen đã trả lời, thực hiện kết nối SSL (mail.smtp.ssl.enable=true) với cổng không phải SSL sẽ ném lỗi này.

này thường được gây ra bằng cách kết nối vào cổng sai, như nhiều dịch vụ mail phổ biến sử dụng cổng 587 thay vì mặc định smtps cổng 465. này áp dụng cho GMail, Hotmail/Live Mail, và Yahoo Mail.

Vấn đề của tôi, tuy nhiên, Java Mail khẳng định sử dụng SSL ngay cả khi tôi đặt ssl thành false.

Sau khi truy tìm mã nguồn, vấn đề là tôi đã sử dụng Session.getDefaultInstance, được sao chép từ một số mã mẫu. Nó chỉ tạo một phiên với các thuộc tính đã cho trong lần gọi đầu tiên; các cuộc gọi sau đó sẽ trả lại phiên cũ đó, thay vì một phiên mới.

Chuyển sang Session.getInstance đảm bảo sử dụng thuộc tính tôi chuyển vào và giải quyết thông báo "SSLException: Unrecognized SSL" của tôi.

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