2009-07-21 65 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 

プロキシを使用してJavaMail APIを使用してメールを送信するのに手伝ってもらえますか?JavaMailを使用してメールを送信する場合のjavax.net.ssl.SSLException

+4

メールを送信するために使用しているコードを投稿すると便利です:D –

+0

この例外をスローするコードは何ですか? – kgiannakakis

+1

このStacktraceを生成するコードはどうですか? –

答えて

15

SSL以外のポートへのSSL接続を試みています。これは動作しません。

あなたがGmailでメールを送信したい場合は、FAQを参照してください:smtp.live.comでHotmailのSMTPサーバを経由して電子メールを送信しようとしたときhttp://java.sun.com/products/javamail/FAQ.html#gmail

7

は私が同じ例外を得ていました。ここでは最後に私のために働いた設定は次のとおりです。

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

SSLを使用したくない、とあなたは、SMTPを使用しての代わりに、SMTPSている場合はアンデルセンとして

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

これらの設定を試してみてくださいSSL以外のポートへのSSL接続(mail.smtp.ssl.enable=true)を実行すると、このエラーがスローされます。

多くの一般のメールサービスは、これはGMailHotmail/Live Mail、およびYahoo Mailに適用される代わりに、デフォルトのSMTPSポート465 のポート587を使用するように、これは一般的に、間違ったポートに接続することによって引き起こされます。

しかし、私の問題は、sslをfalseに設定してもSSLを使用することが主な問題です。

ソースコードをトレースした後、問題は私がSession.getDefaultInstanceを使用して、いくつかのコード例からコピーしたものです。 最初の呼び出しでは、指定されたプロパティを持つセッションだけが作成されます。サブシーケンス呼び出しは新しいセッションではなく古いセッションを返します。

Session.getInstanceに切り替えると、渡されたプロパティが使用されていることを確認し、「SSLException:Unrecognized SSL message」を解決しました。

関連する問題