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
Quelqu'un peut-il m'aider à envoyer un courrier à l'aide de l'API JavaMail à l'aide d'un proxy?
Vous essayez d'établir une connexion SSL avec un port non SSL. Cela ne fonctionnera pas.
Si vous souhaitez envoyer un courrier via Gmail, consultez la FAQ: http://Java.Sun.com/products/javamail/FAQ.html#gmail
Je recevais la même exception lorsque j'essayais d'envoyer un courrier électronique via le serveur SMTP Hotmail à l'adresse smtp.live.com. Voici les paramètres qui ont fonctionné pour moi à la fin:
mail.smtp.starttls.enable=true
mail.smtp.port=587
Si vous ne souhaitez pas utiliser SSL et que vous utilisez smtp au lieu de smtps, essayez ces paramètres.
mail.smtp.starttls.enable=false
mail.transport.protocol=smtp
Comme Andersen a répondu, établir une connexion SSL (mail.smtp.ssl.enable=true
) sur un port non-SSL provoquera cette erreur.
Cela est généralement dû à la connexion au mauvais port, car de nombreux services de messagerie courants utilisent le port 587 au lieu du port smtps par défaut 465 . Ceci s'applique à GMail , Hotmail/Live Mail et Yahoo Mail .
Mon problème, cependant, est que Java Mail insiste sur l’utilisation de SSL même lorsque je mets ssl à false.
Après avoir tracé le code source, le problème est que j’ai utilisé Session.getDefaultInstance
, copié à partir d’un exemple de code . Il ne crée qu’une session avec les propriétés données lors du premier appel; les appels de sous-séquence renverront cette ancienne session au lieu d'une nouvelle session.
Si vous passez à Session.getInstance
, assurez-vous qu’il utilise les propriétés que j’ai transmises et a résolu mon "message SSLException: Unrecognized SSL".
J'étais confronté à ce problème lorsque j'utilisais Gmail.
Pour pouvoir utiliser Gmail, je devais activer "Autoriser les applications moins sécurisées".
Ce paramètre Gmail se trouve à l'adresse suivante: https://www.google.com/settings/security/lesssecureapps après la connexion au compte gmail.