smtpdiag: oye!, ¿os funciona el correo?

12 de noviembre de 2008

smtpdiag es una utilidad libre de microsoft creada para exchange pero que en realidad funciona para cualquier tipo de servicio smtp.

El objetivo de esta utilidad es saber si está correctamente funcionando los dns y las respuestas de los smtp.
Lo que hace la utilidad es leer todos los registros mx de un dominio, verificar que son correctos y que cada mx es respondido por algún servidor smtp.
Me explico. Supongamos que trabajamos en GMail (digo GMail porque este tiene muchas entradas de MX) y alguien nos llama y nos hace la típica pregunta: ¿nos funciona el correo?. La manera más rápida de verificar si todo el sistema de correo esta funcionando es utilizando utilidades como esta.

Lo que hace primero smtpdiag es obtener todos los registros mx:

Comprobando registros MX mediante TCP: gmail.com.
  MX:    gsmtp147.google.com (50)
  MX:    gsmtp183.google.com (50)
  MX:    gmail-smtp-in.l.google.com (5)
  MX:    alt1.gmail-smtp-in.l.google.com (10)
  MX:    alt2.gmail-smtp-in.l.google.com (10)
  A:     gsmtp147.google.com [209.85.147.27]
  A:     gsmtp183.google.com [64.233.183.27]
Comprobando los registros MX mediante UDP: gmail.com.
  MX:    gsmtp183.google.com (50)
  MX:    gmail-smtp-in.l.google.com (5)
  MX:    alt1.gmail-smtp-in.l.google.com (10)
  MX:    alt2.gmail-smtp-in.l.google.com (10)
  MX:    gsmtp147.google.com (50)
Las consultas de TCP y UDP se realizaron con éxito. La comprobación del DNS
remoto fue correcta.
  A:     gmail-smtp-in.l.google.com [216.239.59.27]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.184]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.177]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.176]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.183]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.181]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.186]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.178]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.185]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.182]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.187]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.180]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.179]
  A:     alt2.gmail-smtp-in.l.google.com [209.85.199.27]
  A:     alt2.gmail-smtp-in.l.google.com [209.85.199.114]

Según este ejemplo (donde Google tiene balanceadores de carga smtp) diríamos que el correo funciona correctamente si cada uno de sus balanceadores responde a peticiones smtp ( tanto no hay ningún servidor caído).

El siguiente paso de smtpdiag es conectarse al puerto 25 de cada uno de estos servidores y verificar que están funcionando.

Probemos por ejemplo de smtpdiag enviando un correo desde xxx@hotmail.com a yyy@gmail.com:
c:\>smtpdiag xxx@hotmail.com yyy@gmail.com /V

Buscando la configuraci¢n del DNS Externo en Exchange.

El nombre del equipo es 23HAG1.

Comprobando gmail.com en SOA.
Comprobando los servidores DNS externos.
Comprobando los servidores DNS internos.

Comprobando el n£mero de serie SOA de TCP y de UDP mediante el servidor DNS
[10.1.1.14].
La prueba TCP se realiz¢ con ‚xito.
La prueba UDP se realiz¢ con ‚xito.
N£mero de serie: 2008102400

Comprobando el n£mero de serie SOA de TCP y de UDP mediante el servidor DNS
[10.1.1.12].
La prueba TCP se realiz¢ con ‚xito.
La prueba UDP se realiz¢ con ‚xito.
N£mero de serie: 2008102400
Comprobaci¢n de n£mero de serie SOA: aceptado.

Comprobando los registros de dominio locales.

Iniciando consultas DNS de TCP y UDP para el dominio local. Estas pruebas
intentar n verificar la configuraci¢n del DNS para el correo entrante. Podr¡an
producirse tres tipos de errores.
    1) El dominio local no est  configurado en el DNS. En este caso, el correo
entrante no podr  enrutarse a los buzones locales.
    2) El servidor de seguridad bloquea las consultas DNS de TCP o de UDP. Esto
no afectar  al correo entrante, pero s¡ al saliente.
    3) El DNS interno no conoce la configuraci¢n del DNS interno. Esta
configuraci¢n es v lida en determinadas tipolog¡as.
Comprobando registros MX mediante TCP: hotmail.com.
  MX:    mx1.hotmail.com (5)
  MX:    mx2.hotmail.com (5)
  MX:    mx3.hotmail.com (5)
  MX:    mx4.hotmail.com (5)
  A:     mx1.hotmail.com [65.54.244.8]
  A:     mx1.hotmail.com [65.54.245.8]
  A:     mx1.hotmail.com [65.54.244.136]
  A:     mx2.hotmail.com [65.54.244.40]
  A:     mx2.hotmail.com [65.54.245.40]
  A:     mx2.hotmail.com [65.54.244.168]
  A:     mx3.hotmail.com [65.54.244.72]
  A:     mx3.hotmail.com [65.54.245.72]
  A:     mx3.hotmail.com [65.54.244.200]
  A:     mx4.hotmail.com [65.54.244.104]
  A:     mx4.hotmail.com [65.54.244.232]
  A:     mx4.hotmail.com [65.54.245.104]
Comprobando los registros MX mediante UDP: hotmail.com.
  MX:    mx2.hotmail.com (5)
  MX:    mx3.hotmail.com (5)
  MX:    mx4.hotmail.com (5)
  MX:    mx1.hotmail.com (5)
  A:     mx2.hotmail.com [65.54.245.40]
  A:     mx2.hotmail.com [65.54.244.168]
  A:     mx2.hotmail.com [65.54.244.40]
  A:     mx3.hotmail.com [65.54.245.72]
  A:     mx3.hotmail.com [65.54.244.200]
  A:     mx3.hotmail.com [65.54.244.72]
  A:     mx4.hotmail.com [65.54.244.232]
  A:     mx4.hotmail.com [65.54.245.104]
  A:     mx4.hotmail.com [65.54.244.104]
  A:     mx1.hotmail.com [65.54.245.8]
  A:     mx1.hotmail.com [65.54.244.136]
  A:     mx1.hotmail.com [65.54.244.8]
Las consultas de TCP y UDP se realizaron con ‚xito. La comprobaci¢n del DNS
local fue correcta.
 
Comprobando los registros de dominio remotos.
Iniciando consultas DNS de TCP y UDP para el dominio local. Estas pruebas
intentar n verificar la configuraci¢n del DNS para el correo saliente. Podr¡an
producirse tres tipos de errores.
    1) El servidor de seguridad bloquea las consultas de TCP o UDP, lo que
bloquea el correo saliente. Windows 2000 y Windows NT Server necesitan realizar
consultas DNS de TCP. Windows Server 2003 utilizar  consultas UDP en primer
lugar, y en caso de error conmutar  a consultas TCP.
    2) El DNS interno no sabe c¢mo realizar consultas a dominios externos. Debe
utilizar un servidor DNS externo o configurar el servidor DNS para que realice
consultas a dominios externos.
    3) No existe el dominio remoto. Se producir  un error.
Comprobando registros MX mediante TCP: gmail.com.
  MX:    gmail-smtp-in.l.google.com (5)
  MX:    alt1.gmail-smtp-in.l.google.com (10)
  MX:    alt2.gmail-smtp-in.l.google.com (10)
  MX:    gsmtp147.google.com (50)
  MX:    gsmtp183.google.com (50)
  A:     gmail-smtp-in.l.google.com [216.239.59.27]
  A:     gsmtp147.google.com [209.85.147.27]
  A:     gsmtp183.google.com [64.233.183.27]
Comprobando los registros MX mediante UDP: gmail.com.
  MX:    alt1.gmail-smtp-in.l.google.com (10)
  MX:    alt2.gmail-smtp-in.l.google.com (10)
  MX:    gsmtp147.google.com (50)
  MX:    gsmtp183.google.com (50)
  MX:    gmail-smtp-in.l.google.com (5)
Las consultas de TCP y UDP se realizaron con ‚xito. La comprobaci¢n del DNS
remoto fue correcta.
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.178]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.179]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.185]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.183]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.180]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.177]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.182]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.184]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.176]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.181]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.187]
  A:     alt1.gmail-smtp-in.l.google.com [209.85.217.186]
  A:     alt2.gmail-smtp-in.l.google.com [209.85.199.27]
  A:     alt2.gmail-smtp-in.l.google.com [209.85.199.114]
 
Comprobando los servidores MX indicados para yyy@gmail.com.
Conectando con gmail-smtp-in.l.google.com [216.239.59.27] a trav‚s del puerto
25.
Recibido:
220 mx.google.com ESMTP g9si11627881gvc.0
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK g9si11627881gvc.0
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK g9si11627881gvc.0
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection g9si11627881gvc.0
 
La conexi¢n con gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt2.gmail-smtp-in.l.google.com [209.85.199.114] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP g14si1298585rvb.0
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK g14si1298585rvb.0
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK g14si1298585rvb.0
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection g14si1298585rvb.0
 
La conexi¢n con alt2.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.186] a trav‚s del
puerto 25.
No se pudo conectar con el servidor. Error: 10061
Error al enviar correo a alt1.gmail-smtp-in.l.google.com.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.187] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 12si7528840gxk.11
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 12si7528840gxk.11
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 12si7528840gxk.11
 
Enviado:
quit
 
Recibido:

21 2.0.0 closing connection 12si7528840gxk.11
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.181] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 6si15090215gxk.39
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]

250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 6si15090215gxk.39
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 6si15090215gxk.39
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 6si15090215gxk.39
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.176] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 1si14065599gxk.16
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 1si14065599gxk.16
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 1si14065599gxk.16
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 1si14065599gxk.16
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.184] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 9si6416275gxk.8
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 9si6416275gxk.8
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 9si6416275gxk.8
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 9si6416275gxk.8
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.182] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 7si15437425gxk.42
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 7si15437425gxk.42

Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 7si15437425gxk.42
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 7si15437425gxk.42
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.177] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 2si23572792gxk.61
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 2si23572792gxk.61
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 2si23572792gxk.61
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 2si23572792gxk.61
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.180] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 5si19541045gxk.53
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 5si19541045gxk.53
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 5si19541045gxk.53
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 5si19541045gxk.53
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.183] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 8si25364766gxk.79
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 8si25364766gxk.79
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 8si25364766gxk.79
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 8si25364766gxk.79
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.185] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 10si15617173gxk.45
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 10si15617173gxk.45
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 10si15617173gxk.45
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 10si15617173gxk.45
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.179] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 4si9605gxk.48
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 4si9605gxk.48
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 4si9605gxk.48
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 4si9605gxk.48
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt2.gmail-smtp-in.l.google.com [209.85.199.27] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP g31si29191769rvb.7
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK g31si29191769rvb.7
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK g31si29191769rvb.7
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection g31si29191769rvb.7
 
La conexi¢n con alt2.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con alt1.gmail-smtp-in.l.google.com [209.85.217.178] a trav‚s del
puerto 25.
Recibido:
220 mx.google.com ESMTP 3si15164094gxk.38
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK 3si15164094gxk.38
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK 3si15164094gxk.38
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection 3si15164094gxk.38
 
La conexi¢n con alt1.gmail-smtp-in.l.google.com se realiz¢ correctamente.
Conectando con gsmtp183.google.com [64.233.183.27] a trav‚s del puerto 25.
Recibido:
220 mx.google.com ESMTP h7si12171427nfh.4
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK h7si12171427nfh.4
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK h7si12171427nfh.4
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection h7si12171427nfh.4
 
La conexi¢n con gsmtp183.google.com se realiz¢ correctamente.
Conectando con gsmtp147.google.com [209.85.147.27] a trav‚s del puerto 25.
Recibido:
220 mx.google.com ESMTP n6si45295634wag.2
 
Enviado:
ehlo hotmail.com
 
Recibido:
250-mx.google.com at your service, [213.97.224.9]
250-SIZE 35651584
250-8BITMIME
250 ENHANCEDSTATUSCODES
 
Enviado:
mail from: <xxx@hotmail.com>
 
Recibido:
250 2.1.0 OK n6si45295634wag.2
 
Enviado:
rcpt to: <yyy@gmail.com>
 
Recibido:
250 2.1.5 OK n6si45295634wag.2
 
Enviado:
quit
 
Recibido:
221 2.0.0 closing connection n6si45295634wag.2
 
La conexi¢n con gsmtp147.google.com se realizo correctamente.

Como veis el proceso de verificado puede ser largo dependiendo del numero de servidores que se utilicen para el balanceo o para redundar.
La única pega que veo a esta utilidad es que no envía ningún correo electrónico. Se conecta con el servidor y se desconecta, pero en ningún momento envía un mail. Creo que estaría bastante bien que lo enviara… la primera vez que probé la utilidad creía que no funcionaba porque no me llegaba ningún mensaje de prueba.

Más información:
+ MX and SMTP diagtool
+ SMTP Diagnostics tools (shareware)