Depurar una conexión SMTP con Java Mail

29/Mar/2011 Java , , Deja un comentario

Cuando estamos trabajando con Java Mail, por ejemplo para realizar envíos de email, en caso de fallo con el protocolo SMTP, puede ser complicado encontrar una solución a un problema. Es por ello que es bueno que sepamos cómo depurar una conexión SMTP con Java Mail.

En una gestión de errores basada en excepciones, cuándo se nos genere un fallo saldrá el código asociado al fallo. Por ejemplo, si no se puede verificar el destinatario, la excepción será la siguiente:

javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
	com.sun.mail.smtp.SMTPAddressFailedException: 550-Verification failed for 
550-No Such User Here
550 Sender verify failed

Pero, ¿qué ha pasado hasta entonces? ¿qué se ha negociado en el protocolo SMTP?

Para depurar una conexión SMTP con Java Mail simplemente tenemos que activar el modo de depuración a la Session con el método .setDebug().

  1. mailSession.setDebug(true);

Con esto conseguiremos ver en la consola todo el negociado del protocolo SMTP. Por ejemplo:

DEBUG: setDebug: JavaMail version 1.4.1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "mail.lineadecodigo.com", port 25, isSSL false
220-box548.bluehost.com ESMTP Exim 4.69 #1 Sun, 27 Mar 2011 17:35:58 -0600 
220-We do not authorize the use of this system to transport unsolicited, 
220 and/or bulk e-mail.
DEBUG SMTP: connected to host "mail.lineadecodigo.com", port: 25
EHLO vivaldi
250-box548.bluehost.com Hello vivaldi [89.140.22.132]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
DEBUG SMTP: Found extension "SIZE", arg "52428800"
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:
250 OK
RCPT TO:
550-Verification failed for 
550-No Such User Here
550 Sender verify failed

Realmente útil y sencillo activar cómo depurar una conexión SMTP con Java Mail.

Vídeos sobre Java Mail


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*