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

¿Alguien me puede ayudar a enviar un correo usando la API de JavaMail usando el proxy?javax.net.ssl.SSLException al enviar correo usando JavaMail

+4

Creo que sería útil si publica el código que está utilizando para enviar el correo: D –

+0

¿Cuál es el código que arroja esta excepción? – kgiannakakis

+1

¿Qué tal algún código que produzca esta Stacktrace? –

Respuesta

7

que estaba recibiendo la misma excepción al intentar enviar correo electrónico a través del servidor SMTP de Hotmail en smtp.live.com. Aquí están los ajustes que trabajó para mí en el final:

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

Si no desea utilizar SSL, y que está utilizando SMTP en lugar de smtps Pruebe estos ajustes

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

Como Andersen respondido, haciendo una conexión SSL (mail.smtp.ssl.enable=true) a un puerto que no sea SSL emitirá este error.

Esto es comúnmente causado por la conexión al puerto incorrecto, ya que muchos servicios de correo populares utilizan el puerto 587 en lugar del puerto predeterminado smtps 465. Esto se aplica a GMail, Hotmail/Live Mail y Yahoo Mail.

Mi problema, sin embargo, es que Java Mail insiste en usar SSL incluso cuando establezco ssl en falso.

Después de rastrear el código fuente, el problema es que utilicé Session.getDefaultInstance, copiado de algún código de ejemplo. Solo crea una sesión con las propiedades dadas en la primera llamada; las llamadas a subsecuencias devolverán esa sesión anterior, en lugar de una nueva sesión.

Cambiando a Session.getInstance asegúrese de que use las propiedades que paso, y resuelva mi "SSLException: mensaje SSL no reconocido".

Cuestiones relacionadas