Usar Telnet para probar la comunicación SMTP en servidores de ExchangeUse Telnet to test SMTP communication on Exchange servers

Puede usar Telnet para probar la comunicación del Protocolo simple de transferencia de correo (SMTP) entre servidores de mensajería.You can use Telnet to test Simple Mail Transfer Protocol (SMTP) communication between messaging servers. SMTP es el protocolo que se usa para enviar mensajes de correo electrónico desde un servidor de mensajería a otro.SMTP is the protocol that's used to send email messages from one messaging server to another. Usar Telnet puede resultar útil si tiene problemas para enviar o recibir mensajes porque puede enviar manualmente comandos SMTP a un servidor de mensajería.Using Telnet can be helpful if you're having trouble sending or receiving messages because you can manually send SMTP commands to a messaging server. En cambio, el servidor responderá con las respuestas que se devolverían en una conexión típica.In return, the server will reply with responses that would be returned in a typical connection. En ocasiones, estos resultados pueden ayudarle a averiguar por qué no puede enviar o recibir mensajes.These results can sometimes help you to figure out why you can't send or receive messages.

Puede usar Telnet para probar la comunicación SMTP para:You can use Telnet to test SMTP communication to:

  • Pruebe el flujo de correo desde Internet a su organización de Exchange.Test mail flow from the Internet into your Exchange organization.

  • Pruebe el flujo de correo desde su Exchange a otro servidor de mensajería en Internet.Test mail flow from your Exchange to another messaging server on the 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/ ?Did you know that, instead of using Telnet to test SMTP connectivity, you can use the Microsoft Remote Connectivity Analyzer at https://testconnectivity.microsoft.com/? Con el analizador de conectividad remota, puede elegir la prueba de conectividad que desea hacer, en este caso, el correo electrónico SMTP entrante, y seguir las instrucciones que se muestran.With the Remote Connectivity Analyzer, you can choose the connectivity test you want to do, in this case Inbound SMTP Email, and follow the instructions shown. Le guiará a través de la información que debe escribir, ejecutar la prueba y, a continuación, obtener los resultados.It'll step you through the information you need to enter, run the test for you, and then give you the results. ¡ Pruébelo!Give it a try!

¿Qué necesita saber antes de comenzar?What do you need to know before you begin?

  • Tiempo estimado para finalizar: 15 minutosEstimated time to complete: 15 minutes

  • Los permisos de Exchange no se aplican a los procedimientos de este tema.Exchange permissions don't apply to the procedures in this topic. Estos procedimientos se realizan en el sistema operativo de Exchange Server o en un equipo cliente.These procedures are performed in the operating system of the Exchange server or a client computer.

  • En este tema se muestra cómo usar el cliente Telnet, que se incluye con Windows.This topic shows you how to use Telnet Client, which is included with Windows. Los clientes telnet de terceros pueden necesitar una sintaxis diferente de la que se muestra en este tema.Third-party Telnet clients might require syntax that's different from what's shown in this topic.

  • Los pasos de este tema muestran cómo conectarse a un servidor accesible desde Internet que permite conexiones anónimas mediante el puerto TCP 25.The steps in this topic show you how to connect to an Internet-facing server that allows anonymous connections using TCP port 25. Si está intentando conectarse a este servidor desde Internet, debe asegurarse de que el servidor de Exchange es accesible desde Internet en el puerto TCP 25.If you're trying to connect to this server from the Internet, you need to make sure your Exchange server is reachable from the Internet on TCP port 25. De forma similar, si está intentando acceder a un servidor en Internet desde su servidor Exchange, debe asegurarse de que el servidor Exchange puede abrir una conexión a Internet en el puerto TCP 25.Similarly, if you're trying to reach a server on the Internet from your Exchange server, you need to make sure your Exchange server can open a connect to the Internet on TCP port 25.

  • Es posible que observe algunos conectores de recepción que usan el puerto TCP 2525.You might notice some Receive connectors that use TCP port 2525. Se trata de conectores de recepción internos que no se usan para aceptar conexiones SMTP anónimas.These are internal Receive connectors and aren't used to accept anonymous SMTP connections.

  • Si está probando una conexión en un servidor de mensajería remoto, debe ejecutar los pasos de este tema en el servidor de Exchange.If you're testing a connection on a remote messaging server, you should run the steps in this topic on your Exchange server. Los servidores de mensajería remoto se suelen configurar para asegurarse de que la dirección IP desde la que procede la conexión SMTP coincide con el dominio de la dirección de correo electrónico del remitente.Remote messaging servers are often set up to make sure the IP address where the SMTP connection is coming from matches the domain in the sender's email address.

  • 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.For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.

Sugerencia

Having problems?Having problems? Ask for help in the Exchange forums.Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

Paso 1: instalar el cliente Telnet en el equipoStep 1: Install the Telnet Client on your computer

En la mayoría de las versiones de Windows, tendrá que instalar el cliente Telnet para poder usarlo.On most versions of Windows, you'll need to install the Telnet client before you can use it. Para instalarlo, vea Instalación del cliente Telnet.To install it, see Install Telnet Client.

Paso 2: buscar el FQDN o la dirección IP del servidor SMTP de destinoStep 2: Find the FQDN or IP address of the destination SMTP server

Para conectarse a un servidor SMTP mediante telnet en el puerto 25, debe usar el nombre de dominio completo (FQDN) (por ejemplo, mail.contoso.com) o la dirección IP del servidor SMTP.To connect to an SMTP server by using Telnet on port 25, you need to use the fully-qualified domain name (FQDN) (for example, mail.contoso.com) or the IP address of the SMTP server. Si no conoce el FQDN o la dirección IP, puede usar la herramienta de línea de comandos nslookup para encontrar el registro MX para el dominio de destino.If you don't know the FQDN or IP address, you can use the Nslookup command-line tool to find the MX record for the destination domain.

Nota

Es posible que las directivas de red le impidan usar la herramienta Nslookup para consultar servidores DNS públicos en Internet.Network policies might prevent you from using the Nslookup tool to query public DNS servers on the Internet. Como alternativa, puede usar uno de los sitios web de búsqueda de DNS o de búsqueda de registros MX disponibles en Internet de forma gratuita.As an alternative, you can use one of the freely-available DNS lookup or MX record lookup web sites on the Internet.

  1. En un símbolo del sistema, escriba nslookup y, a continuación, presione Entrar.At a command prompt, type nslookup, and then press Enter. Este comando abre la sesión de Nslookup.This command opens the Nslookup session.

  2. Escriba set Type = mx y, a continuación, presione Entrar.Type set type=mx, and then press Enter.

  3. Escriba el nombre del dominio cuyo registro MX desea buscar.Type the name of the domain for which you want to find the MX record. Por ejemplo, para buscar el registro MX del dominio fabrikam.com, escriba fabrikam.com. y, a continuación, presione Entrar.For example, to find the MX record for the fabrikam.com domain, type fabrikam.com., and then press Enter.

    Nota

    Cuando se usa un punto final (.When you use a trailing period ( . ), se impide que los sufijos DNS predeterminados se agreguen involuntariamente al nombre de dominio.), you prevent any default DNS suffixes from being unintentionally added to the domain name.

    El resultado del comando tiene este aspecto:The output of the command looks like this:

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
<span data-ttu-id="d346d-149">Puede utilizar cualquier nombre de host o dirección IP asociados a los registros MX como el servidor SMTP de destino.</span><span class="sxs-lookup"><span data-stu-id="d346d-149">You can use any of the host names or IP addresses that are associated with the MX records as the destination SMTP server.</span></span> <span data-ttu-id="d346d-150">Un valor menor para preferencia (preferencia = 10 frente a 20) indica un servidor SMTP preferido.</span><span class="sxs-lookup"><span data-stu-id="d346d-150">A lower value for preference (preference = 10 vs. 20) indicates a preferred SMTP server.</span></span> <span data-ttu-id="d346d-151">Para el equilibrio de carga y la tolerancia a errores se usan varios registros MX y diferentes valores de preferencia.</span><span class="sxs-lookup"><span data-stu-id="d346d-151">Multiple MX records and different values of preference are used for load balancing and fault tolerance.</span></span>
  1. Cuando esté listo para finalizar la sesión de nslookup, escriba Exit y, a continuación, presione Entrar.When you're ready to end the Nslookup session, type exit, and then press Enter.

Paso 3: Usar Telnet en el puerto 25 para probar la comunicación de SMTPStep 3: Use Telnet on Port 25 to test SMTP communication

En este ejemplo, vamos a usar los siguientes valores.In this example, we're going to use the following values. Cuando ejecute los comandos en el servidor, reemplace estos valores por unos para el servidor SMTP, el dominio, etc. de su organización.When you run the commands on your server, replace these values with ones for your organization's SMTP server, domain, etc.

  • Servidor SMTP de destino: mail1.fabrikam.comDestination SMTP server: mail1.fabrikam.com

  • Dominio de origen: contoso.comSource domain: contoso.com

  • Dirección de correo electrónico del remitente: Chris@contoso.comSender's e-mail address: chris@contoso.com

  • Dirección de correo electrónico del destinatario: Kate@fabrikam.comRecipient's e-mail address: kate@fabrikam.com

  • Asunto del mensaje: prueba de ContosoMessage subject: Test from Contoso

  • Cuerpo del mensaje: este es un mensaje de pruebaMessage body: This is a test message

Sugerencia

Los comandos del cliente telnet no distinguen mayúsculas de minúsculas.The commands in the Telnet Client aren't case-sensitive. Los verbos del comando SMTP en este ejemplo se capitalizan en mayúsculas para obtener una mayor claridad.The SMTP command verbs in this example are capitalized for clarity. No puede usar la tecla retroceso en la sesión de Telnet después de conectar con el servidor SMTP de destino.You can't use the backspace key in the Telnet session after you connect to the destination SMTP server. Si comete un error al escribir un comando SMTP, debe presionar entrar y, a continuación, volver a escribir el comando.If you make a mistake as you type an SMTP command, you need to press Enter, and then type the command again. 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 commandUnrecognized SMTP commands or syntax errors result in an error message that looks like this: 500 5.3.3 Unrecognized command

  1. Abra una ventana del símbolo del sistema, escriba y telnet , a continuación, presione Entrar.Open a Command Prompt window, type telnet, and then press Enter.

    Este comando abre la sesión de Telnet.This command opens the Telnet session.

  2. Escriba set localecho y, a continuación, presione Entrar.Type set localecho, and then press Enter.

    Este comando opcional le permite ver los caracteres a medida que los escribe y puede ser necesario para algunos servidores SMTP.This optional command lets you view the characters as you type them, and it might be required for some SMTP servers.

  3. Escriba set logfile <filename> y, a continuación, presione Entrar.Type set logfile <filename>, and then press Enter.

    Este comando opcional habilita el registro y especifica el archivo de registro de la sesión de Telnet.This optional command enables logging and specifies the log file for the Telnet session. Si solo especifica un nombre de archivo, el archivo de registro se encuentra en la carpeta actual.If you only specify a file name, the log file is located in the current folder. 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 de DOS 8,3 de Windows (nombre corto sin espacios).If you specify a path and file name, the path needs to be on the local computer, and you might need to enter the path and file name in the Windows DOS 8.3 format (short name with no spaces). La ruta de acceso debe existir, pero el archivo de registro se crea automáticamente.The path needs to exist, but the log file is created automatically.

  4. Escriba OPEN mail1.fabrikam.com 25 y, a continuación, presione Entrar.Type OPEN mail1.fabrikam.com 25, and then press Enter.

  5. Escriba EHLO contoso.com y, a continuación, presione Entrar.Type EHLO contoso.com, and then press Enter.

  6. Escriba MAIL FROM:<chris@contoso.com> y, a continuación, presione Entrar.Type MAIL FROM:<chris@contoso.com>, and then press Enter.

  7. Escriba RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure y, a continuación, presione Entrar.Type RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure, and then press Enter.

    El comando NOTIFY opcional especifica los mensajes de notificación de estado de entrega (DSN) específicos (también conocidos como mensajes de devolución, informes de no entrega o NDR) que el SMTP debe proporcionar.The optional NOTIFY command specifies the particular delivery status notification (DSN) messages (also known as bounce messages, nondelivery reports, or NDRs) that the SMTP is required to provide. En este ejemplo, está solicitando un mensaje de DSN para la entrega de mensajes correcta o incorrecta.In this example, you're requesting a DSN message for successful or failed message delivery.

  8. Escriba DATA y, a continuación, presione Entrar.Type DATA, and then press Enter.

  9. Escriba Subject: Test from Contoso y, a continuación, presione Entrar.Type Subject: Test from Contoso, and then press Enter.

  10. Vuelva a presionar Entrar.Press Enter again.

    Se necesita una línea en blanco entre el campo Subject: y el cuerpo del mensaje.A blank line is needed between the Subject: field and the message body.

  11. Escriba This is a test message y, a continuación, presione Entrar.Type This is a test message, and then press Enter.

  12. Escriba un punto (.Type a period ( . ) y, después, presione Entrar.), and then press Enter.

  13. Para desconectarse del servidor SMTP, escriba y QUIT , a continuación, presione Entrar.To disconnect from the SMTP server, type QUIT, and then press Enter.

  14. Para cerrar la sesión de Telnet, escriba quit y, a continuación, presione Entrar.To close the Telnet session, type quit, and then press Enter.

Esta es la forma en que una sesión correcta con los pasos anteriores tiene el siguiente aspecto:Here's what a successful session using the steps above looks like:

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 error y de operación correcta en la sesión de TelnetStep 4: Success and error messages in the Telnet Session

En esta sección se proporciona información sobre las respuestas de aciertos y errores a los comandos que se usaron en el ejemplo anterior.This section provides information about the success and failure responses to the commands that were used in the previous example.

Nota

Los códigos de respuesta SMTP de tres dígitos definidos en RFC 5321 son los mismos para todos los servidores de mensajería SMTP, pero las descripciones de texto en las respuestas pueden ser ligeramente diferentes.The three-digit SMTP response codes that are defined in RFC 5321 are the same for all SMTP messaging servers, but the text descriptions in the responses might be slightly different.

Códigos de respuesta SMTPSMTP reply codes

Los servidores SMTP responden a comandos con una variedad de códigos de respuesta numéricos en el formato de x. y. z donde:SMTP servers respond to commands with a variety of numerical reply codes in the format of x.y.z where:

  • X indica si el comando era correcto, incorrecto o incompleto.X indicates whether the command was good, bad, or incomplete.

  • Y indica el tipo de respuesta que se ha enviado.Y indicates the kind of response that was sent.

  • Z proporciona información adicional sobre el comandoZ provides additional information about the command

Cuando el servidor que abrió la conexión recibe una respuesta, puede averiguar si el servidor remoto aceptó el comando y está preparado para el siguiente, o si se ha producido un error.When a response is received by the server that opened the connection, it can tell whether the remote server accepted the command and is ready for the next one, or if an error occurred.

El primer dígito (X) es particularmente importante para comprender porque indica el éxito o el error del comando que se envió.The first digit (X) is particularly important to understand because it indicates the success or failure of the command that was sent. A continuación, se muestran los valores posibles y su significado.Here are its possible values, and their meanings.

Código de respuestaReply code SignificadoMeaning
2. y. z2.y.z El comando que se envió se completó correctamente en el servidor remoto.The command that was sent was successfully completed on the remote server. El servidor remoto está preparado para el siguiente comando.The remote server is ready for the next command.
3. y. z3.y.z Se aceptó el comando pero el servidor remoto necesita más información antes de que se pueda completar la operación.The command was accepted but the remote server needs more information before the operation can be completed. El servidor de envío tiene que enviar un nuevo comando con la información necesaria.The sending server needs to send a new command with the needed information.
4. y. z4.y.z El servidor remoto no aceptó el comando por un motivo que podría ser temporal.The command wasn't accepted by the remote server for a reason that might be temporary. El servidor de envío debe intentar conectarse de nuevo más tarde para ver si el servidor remoto puede aceptar el comando correctamente.The sending server should try to connect again later to see if the remote server can successfully accept the command. El servidor de envío seguirá reintentando la conexión hasta que se complete una conexión correcta (indicada por un código 2. y. z) o se produzca un error de forma permanente (indicado por un código 5. y. z).The sending server will continue to retry the connection until either a successful connection is completed (indicated by a 2.y.z code) or fails permanently (indicated by a 5.y.z code).
Un ejemplo de un error temporal es un espacio de almacenamiento bajo en el servidor remoto.An example of a temporary error is low storage space on the remote server. Una vez que haya más espacio disponible, el servidor remoto debe poder aceptar el comando correctamente.Once more space is made available, the remote server should be able to successfully accept the command.
5. y. z5.y.z El servidor remoto no aceptó el comando por un motivo que no es recuperable.The command wasn't accepted by the remote server for a reason that is isn't recoverable. El servidor de envío no volverá a intentar la conexión y enviará un informe de no entrega al usuario que envió el mensaje.The sending server won't retry the connection and will send a non-delivery report back to the user who sent the message.
Un ejemplo de un error irrecuperable es un mensaje que se envía a una dirección de correo electrónico que no existe.An example of an unrecoverable error is a message that's sent to an email address that doesn't exist.

La tabla anterior se basa en la información proporcionada por RFC 5321 (Protocolo simple de transferencia de correo), sección 4.2.1.The table above is based on information provided by RFC 5321 (Simple Mail Transfer Protocol), section 4.2.1. En esta sección se incluye información adicional, incluidas las descripciones de los dígitos segundo (Y) y tercero (Z) de los códigos de respuesta SMTP, y en las secciones 4.2.2 y 4.2.3.Additional information, including descriptions of the second (Y) and third (Z) digits of SMTP reply codes is included in this section, and in sections 4.2.2 and 4.2.3.

Comando abrirOPEN command

Respuesta correcta:220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>Successful response: 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 failedFailure response: Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Posibles motivos del errorPossible reasons for failure

  • El servicio SMTP de destino no está disponible.The destination SMTP service is unavailable.

  • Restricciones en el Firewall de destino.Restrictions on the destination firewall.

  • Restricciones en el Firewall de origen.Restrictions on the source firewall.

  • Dirección IP o FQDN incorrecto para el servidor SMTP de destino.Incorrect FQDN or IP address for the destination SMTP server.

  • Número de Puerto incorrecto.Incorrect port number.

Comando EHLOEHLO command

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

Respuesta de error:501 5.5.4 Invalid domain nameFailure response: 501 5.5.4 Invalid domain name

Posibles motivos del errorPossible reasons for failure

  • Caracteres no válidos en el nombre de dominio.Invalid characters in the domain name.

  • Restricciones de conexión en el servidor SMTP de destino.Connection restrictions on the destination SMTP server.

Nota

EHLO es el verbo del Protocolo simple de transferencia de mensajes (ESMTP) extendido que se define en RFC 5321.EHLO is the Extended Simple Message Transfer Protocol (ESMTP) verb that's defined in RFC 5321. Los servidores ESMTP pueden anunciar sus capacidades durante la conexión inicial.ESMTP servers can advertise their capabilities during the initial connection. Estas capacidades incluyen el tamaño máximo de mensaje aceptado y los métodos de autenticación admitidos.These capabilities include the maximum accepted message size and supported authentication methods. HELO es el verbo SMTP más antiguo definido en RFC 821.HELO is the older SMTP verb that is defined in RFC 821. La mayoría de los servidores de mensajería SMTP admiten ESMTP y EHLO.Most SMTP messaging servers support ESMTP and EHLO. Si el servidor que no es de Exchange al que está intentando conectar no es compatible con EHLO, puede usar HELO en su lugar.If the non-Exchange server that you're trying to connect to doesn't support EHLO, you can use HELO instead.

Comando MAIL FROMMAIL FROM command

Respuesta correcta:250 2.1.0 Sender OKSuccessful response: 250 2.1.0 Sender OK

Respuesta de error:550 5.1.7 Invalid addressFailure response: 550 5.1.7 Invalid address

Posibles motivos del error: un error de sintaxis en la dirección de correo electrónico del remitente.Possible reasons for failure: A syntax error in the sender's e-mail address.

Respuesta de error:530 5.7.1 Client was not authenticatedFailure response: 530 5.7.1 Client was not authenticated

Posibles motivos del error: el servidor de destino no acepta envíos de mensajes anónimos.Possible reasons for failure: The destination server doesn't accept anonymous message submissions. Este error se recibe si se intenta usar Telnet para enviar un mensaje directamente a un servidor de buzones de correo que no tiene un conector de recepción que esté configurado para aceptar conexiones anónimas.You receive this error if you try to use Telnet to submit a message directly to a Mailbox server that doesn't have a Receive connector that's configured to accept anonymous connections.

Comando RCPT TORCPT TO command

Respuesta correcta:250 2.1.5 Recipient OKSuccessful response: 250 2.1.5 Recipient OK

Respuesta de error:550 5.1.1 User unknownFailure response: 550 5.1.1 User unknown

Posibles motivos del error: el destinatario especificado no existe.Possible reasons for failure: The specified recipient doesn't exist.