Usar Telnet para probar la comunicación SMTP en servidores de Exchange

SE APLICA A:YES-IMG-162016 yes-img-192019 yes-img-seEdición de suscripción

Puede utilizar Telnet para probar la comunicación del Protocolo simple de transferencia de correo (SMTP) entre los servidores de mensajería. SMTP es el protocolo que se usa para enviar mensajes de correo electrónico de un servidor de mensajería a otro. El uso de Telnet puede ser útil si tiene problemas para enviar o recibir mensajes, ya que puede enviar manualmente comandos SMTP a un servidor de mensajería. A cambio, el servidor responderá con respuestas que se devolverían en una conexión típica. Estos resultados a veces pueden ayudarle a averiguar por qué no puede enviar o recibir mensajes.

Puede usar Telnet para probar la comunicación SMTP para:

  • Pruebe el flujo de correo de Internet a la organización de Exchange.

  • Pruebe el flujo de correo de Exchange a otro servidor de mensajería en Internet.

Sugerencia

¿Sabía que, en lugar de usar Telnet para probar la conectividad SMTP, puede usar el Analizador de conectividad remota de Microsoft en https://testconnectivity.microsoft.com/? Con el Analizador de conectividad remota, puede elegir la prueba de conectividad que desea realizar, en este caso Inbound SMTP Email, y seguir las instrucciones que se muestran. Te guiará por la información que necesitas especificar, ejecutará la prueba por ti y después te dará los resultados. Pruébelo.

¿Qué necesita saber antes de empezar?

  • Tiempo estimado para finalizar: 15 minutos

  • Los permisos de Exchange no se aplican a los procedimientos de este tema. Estos procedimientos se realizan en el sistema operativo del servidor de Exchange o en un equipo cliente.

  • En este tema se muestra cómo usar el cliente Telnet, que se incluye con Windows. Los clientes Telnet de terceros pueden requerir una sintaxis diferente de la que se muestra en este tema.

  • Los pasos descritos en este tema muestran cómo conectarse a un servidor con conexión a Internet que permite conexiones anónimas mediante el puerto TCP 25. Si intenta conectarse a este servidor desde Internet, debe asegurarse de que su servidor Exchange sea accesible desde Internet en el puerto TCP 25. De forma similar, si intenta llegar a un servidor de Internet desde su servidor de Exchange, debe asegurarse de que el servidor de Exchange pueda abrir una conexión a Internet en el puerto TCP 25.

  • Es posible que observe algunos conectores de recepción que usan el puerto TCP 2525. Son conectores de recepción internos y no se usan para aceptar conexiones SMTP anónimas.

  • Si está probando una conexión en un servidor de mensajería remota, debe ejecutar los pasos de este tema en su servidor de Exchange. Los servidores de mensajería remota a menudo se configuran para asegurarse de que la dirección IP de la que procede la conexión SMTP coincide con el dominio de la dirección de correo electrónico del remitente.

  • Para obtener información acerca de los métodos abreviados de teclado aplicables a los procedimientos de este tema, consulte Métodos abreviados de teclado en el Centro de administración de Exchange.

Sugerencia

¿Problemas? Solicite ayuda en el foro de Exchange Server en Exchange | Exchange Server | Gestión de datos.

Paso 1: Instalar el cliente Telnet en el equipo

En la mayoría de las versiones de Windows, deberá instalar el cliente Telnet antes de poder usarlo. Para instalarlo, vea Instalación del cliente Telnet.

Paso 2: Buscar el FQDN o la dirección IP del servidor SMTP de destino

Para conectarse a un servidor SMTP utilizando Telnet en el puerto 25, debe utilizar el nombre de dominio completo (FQDN) (por ejemplo, mail.contoso.com) o la dirección IP del servidor SMTP. Si no conoce el FQDN o la dirección IP, puede usar la herramienta de línea de comandos Nslookup para buscar el registro MX del dominio de destino.

Nota:

Las directivas de red pueden impedirle usar la herramienta Nslookup para consultar servidores DNS públicos en Internet. Como alternativa, puede utilizar uno de los sitios web de búsqueda de DNS o de búsqueda de registros MX disponibles gratuitamente en Internet.

  1. En un símbolo del sistema, escriba nslookupy presione Entrar. Este comando abre la sesión de Nslookup.

  2. Escriba set type=mx y presione Entrar.

  3. Escriba el nombre del dominio cuyo registro MX desea buscar. Por ejemplo, para buscar el registro MX del dominio fabrikam.com, escriba fabrikam.com.y, a continuación, presione Entrar.

    Nota:

    Cuando utiliza un punto final ( . ), evita que los sufijos DNS predeterminados se agreguen involuntariamente al nombre de dominio.

    El resultado del comando tiene este aspecto:

    fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
    fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
    mail1.fabrikam.com internet address = 192.168.1.10
    mail2 fabrikam.com internet address = 192.168.1.20
    

    Puede utilizar cualquier nombre de host o dirección IP asociados a los registros MX como el servidor SMTP de destino. Un valor inferior para la preferencia (preferencia = 10 frente a 20) indica un servidor SMTP preferido. Se utilizan múltiples registros MX y diferentes valores de preferencia para el equilibrio de carga y la tolerancia a fallos.

  4. Cuando esté listo para finalizar la sesión de Nslookup, escriba exity presione Entrar.

Paso 3: Usar Telnet en el puerto 25 para probar la comunicación de SMTP

En este ejemplo, vamos a usar los siguientes valores. Cuando ejecute los comandos en el servidor, reemplace estos valores por los del servidor SMTP, dominio, etc. de su organización.

  • Servidor SMTP de destino: mail1.fabrikam.com
  • Dominio de origen: contoso.com
  • Dirección de correo electrónico del remitente: chris@contoso.com
  • Dirección de correo electrónico del destinatario: kate@fabrikam.com
  • Asunto del mensaje: prueba desde Contoso
  • Cuerpo del mensaje: Este es un mensaje de prueba

Sugerencia

Los comandos del cliente Telnet no distinguen mayúsculas de minúsculas. Los verbos de comando SMTP de este ejemplo se escriben en mayúsculas para mayor claridad. No puede usar la tecla retroceso en la sesión Telnet después de conectarse al servidor SMTP de destino. Si comete un error al escribir un comando SMTP, debe presionar Entrar y volver a escribir el comando. Los comandos SMTP no reconocidos o los errores de sintaxis dan como resultado un mensaje de error similar al siguiente: 500 5.3.3 Unrecognized command.

  1. Abra una ventana del símbolo del sistema, escriba telnety presione Entrar.

    Este comando abre la sesión de Telnet.

  2. Escriba set localecho y presione Entrar.

    Este comando opcional le permite ver los caracteres a medida que los escribe, y puede ser necesario para algunos servidores SMTP.

  3. Escriba set logfile <filename> y presione Entrar.

    Este comando opcional habilita el registro y especifica el archivo de registro para la sesión Telnet. Si sólo especifica un nombre de archivo, el archivo de registro se encuentra en la carpeta actual. Si especifica una ruta de acceso y un nombre de archivo, la ruta de acceso debe estar en el equipo local y es posible que deba escribir la ruta de acceso y el nombre de archivo en el formato Windows DOS 8.3 (nombre corto sin espacios). La ruta debe existir, pero el archivo de registro se crea automáticamente.

  4. Escriba OPEN mail1.fabrikam.com 25 y presione Entrar.

  5. Escriba EHLO contoso.com y presione Entrar.

  6. Escriba MAIL FROM:<chris@contoso.com> y presione Entrar.

  7. Escriba RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure y presione Entrar.

    El comando NOTIFY opcional especifica los mensajes de notificación de estado de entrega (DSN) particulares (también conocidos como mensajes de devolución, informes de no entrega o NDR) que el SMTP debe proporcionar. En este ejemplo, está solicitando un mensaje DSN para la entrega correcta o errónea de mensajes.

  8. Escriba DATA y presione Entrar.

  9. Escriba Subject: Test from Contoso y presione Entrar.

  10. Vuelva a presionar Entrar.

    Es necesaria una línea en blanco entre el campo Asunto: y el cuerpo del mensaje.

  11. Escriba This is a test message y presione Entrar.

  12. Escriba un punto ( . ) y presione Entrar.

  13. Para desconectarse del servidor SMTP, escriba QUITy, a continuación, presione Entrar.

  14. Para cerrar la sesión Telnet, escriba quity presione Entrar.

Este es el aspecto de una sesión correcta siguiendo los pasos anteriores:

C:\Windows\System32> telnet
Microsoft Telnet> set localecho
Microsoft Telnet> set logfile c:\TelnetTest.txt
Microsoft Telnet> OPEN mail1.fabrikam.com 25
220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: <chris@contoso.com>
250 2.1.0 Sender OK
RCPT TO: <kate@fabrikam.com> NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test

This is a test message.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

Paso 4: Mensajes de éxito y error en la sesión Telnet

En esta sección se proporciona información sobre las respuestas correctas y erróneas a los comandos utilizados en el ejemplo anterior.

Nota:

Los códigos de respuesta SMTP de tres dígitos que se definen en RFC 5321 son los mismos para todos los servidores de mensajería SMTP, pero las descripciones de texto de las respuestas pueden ser ligeramente diferentes.

Códigos de respuesta SMTP

Los servidores SMTP responden a los comandos con una variedad de códigos de respuesta numéricos en el formato x.y.z donde:

  • X indica si el comando era bueno, malo o incompleto.
  • Y indica el tipo de respuesta que se envió.
  • Z proporciona información adicional sobre el comando

Cuando el servidor que abrió la conexión recibe una respuesta, puede indicar si el servidor remoto aceptó el comando y está listo para el siguiente, o si se produjo un error.

Es especialmente importante comprender el primer dígito (X), ya que indica el éxito o el error del comando enviado. Estos son sus posibles valores y sus significados.

Código de respuesta Significado
2.y.z El comando enviado se ha completado correctamente en el servidor remoto. El servidor remoto está listo para el siguiente comando.
3.y.z El comando se aceptó, pero el servidor remoto necesita más información antes de que se pueda completar la operación. El servidor emisor debe enviar un nuevo comando con la información necesaria.
4.y.z El servidor remoto no aceptó el comando por un motivo que podría ser temporal. El servidor emisor debe intentar conectarse de nuevo más tarde para ver si el servidor remoto puede aceptar correctamente el comando. El servidor emisor continuará reintentando la conexión hasta que se complete una conexión correcta (indicado por un código 2.y.z) o se produzca un error permanente (indicado por un código 5.y.z).
Un ejemplo de un error temporal es la falta de espacio de almacenamiento en el servidor remoto. Una vez que haya más espacio disponible, el servidor remoto debería poder aceptar correctamente el comando.
5.y.z El servidor remoto no aceptó el comando por un motivo que no se puede recuperar. El servidor emisor no reintentará la conexión y enviará un informe de no entrega al usuario que envió el mensaje.
Un ejemplo de error irrecuperable es un mensaje que se envía a una dirección de correo electrónico que no existe.

La tabla anterior se basa en la información proporcionada por RFC 5321 (Protocolo simple de transferencia de correo), sección 4.2.1. En esta sección, y en las secciones 4.2.2 y 4.2.3, se incluye información adicional, incluidas descripciones del segundo (Y) y tercer (Z) dígitos de los códigos de respuesta SMTP.

ABRIR comando

Respuesta correcta: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

Respuesta de error: Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Posibles causas del error:

  • El servicio SMTP de destino no está disponible.
  • Restricciones en el firewall de destino.
  • Restricciones en el firewall de origen.
  • Dirección IP o FQDN incorrectos para el servidor SMTP de destino.
  • Número de puerto incorrecto.

Comando EHLO

Respuesta correcta: 250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Respuesta de error: 501 5.5.4 Invalid domain name

Posibles causas del error:

  • Caracteres no válidos en el nombre de dominio.
  • Restricciones de conexión en el servidor SMTP de destino.

Nota:

EHLO es el verbo extendido del Protocolo simple de transferencia de mensajes (ESMTP) que se define en RFC 5321. Los servidores ESMTP pueden anunciar sus capacidades durante la conexión inicial. Entre estas capacidades se incluyen el tamaño máximo aceptado de mensaje y los métodos de autenticación admitidos. HELO es el verbo SMTP más antiguo definido en RFC 821. La mayoría de los servidores de mensajería SMTP admiten ESMTP y EHLO. Si el servidor distinto de Exchange al que intenta conectarse no es compatible con EHLO, puede usar HELO en su lugar.

Comando MAIL FROM

Respuesta correcta: 250 2.1.0 Sender OK

Respuesta de error: 550 5.1.7 Invalid address

Posibles razones del error: Un error de sintaxis en la dirección de correo electrónico del remitente.

Respuesta de error: 530 5.7.1 Client was not authenticated

Posibles razones del error: El servidor de destino no acepta envíos de mensajes anónimos. Recibe este error si intenta usar Telnet para enviar un mensaje directamente a un servidor de buzones de correo que no tiene un conector de recepción configurado para aceptar conexiones anónimas.

Comando RCPT TO

Respuesta correcta: 250 2.1.5 Recipient OK

Respuesta de error: 550 5.1.1 User unknown

Posibles razones del error: El destinatario especificado no existe.