Usar Telnet para testar a comunicação SMTP em servidores Exchange

Você pode usar o Telnet para testar a comunicação SMTP (Simple Mail Transfer Protocol) entre servidores de mensagens. SMTP é o protocolo usado para enviar mensagens de email de um servidor de mensagens para outro. Usar o Telnet pode ser útil se você estiver tendo problemas para enviar ou receber mensagens porque pode enviar manualmente comandos SMTP para um servidor de mensagens. Em troca, o servidor responderá com respostas que seriam retornadas em uma conexão típica. Esses resultados às vezes podem ajudá-lo a descobrir por que você não pode enviar ou receber mensagens.

Você pode usar o Telnet para testar a comunicação SMTP com:

  • Testar o fluxo de email da Internet para a sua organização do Exchange.

  • Testar o fluxo de email do seu Exchange para outro servidor de mensagens na Internet.

Dica

Você sabia que, em vez de usar o Telnet para testar a conectividade SMTP, você pode usar o Analisador de Conectividade Remota da Microsoft em https://testconnectivity.microsoft.com/? Com o Analisador de Conectividade Remota, você pode escolher o teste de conectividade que deseja fazer, nesse caso, Email do SMTP de entrada e seguir as instruções mostradas. Ele vai passo a passo você através das informações que você precisa inserir, executar o teste para você e, em seguida, fornecer-lhe os resultados. Experimente!

O que você precisa saber antes de começar?

  • Tempo estimado para conclusão: 15 minutos

  • Permissões do Exchange não se aplicam aos procedimentos neste tópico. Esses procedimentos são executados no sistema operacional do servidor Exchange ou em um computador cliente.

  • Este tópico mostra como usar o Cliente Telnet, que está incluído no Windows. Clientes telnet de terceiros podem exigir sintaxe diferente do mostrado neste tópico.

  • As etapas neste tópico mostram como se conectar a um servidor voltado para a Internet que permite conexões anônimas usando a porta TCP 25. Se você estiver tentando se conectar a esse servidor por meio da Internet, precisará garantir que o servidor do Exchange seja acessível pela Internet na porta TCP 25. Da mesma forma, se você estiver tentando acessar um servidor na Internet a partir do servidor exchange, precisará garantir que o servidor do Exchange possa abrir uma conexão com a Internet na porta TCP 25.

  • Você pode notar alguns conectores de recebimento que usam a porta TCP 2525. Estes são conectores de recebimento internos e não são usados para aceitar conexões SMTP anônimas.

  • Se você estiver testando uma conexão em um servidor de mensagens remotas, execute as etapas neste tópico no servidor do Exchange. Os servidores de mensagens remotas geralmente são configurados para garantir que o endereço IP de onde a conexão SMTP vem corresponda ao domínio no endereço de email do remetente.

  • Para informações sobre atalhos de teclado que possam se aplicar aos procedimentos neste tópico, confira Atalhos de teclado no Centro de Administração do Exchange.

Dica

Está com problemas? Peça ajuda nos fóruns do Exchange. Visite os fóruns em: Exchange Server, Exchange Online ou Proteção do Exchange Online.

Etapa 1: instalar o Cliente Telnet no computador

Na maioria das versões do Windows, você precisará instalar o cliente Telnet antes de usá-lo. Para instalá-lo, confira Instalar cliente Telnet.

Etapa 2: localizar o FQDN ou o endereço IP do servidor SMTP de destino

Para se conectar a um servidor SMTP usando o Telnet na porta 25, você precisa usar o FQDN (nome de domínio totalmente qualificado) (por exemplo, mail.contoso.com) ou o endereço IP do servidor SMTP. Se você não souber o endereço FQDN ou IP, poderá usar a ferramenta de linha de comando Nslookup para localizar o registro MX para o domínio de destino.

Observação

As políticas de rede podem impedir que você use a ferramenta Nslookup para consultar servidores DNS públicos na Internet. Como alternativa, você pode usar uma das pesquisas de DNS disponíveis gratuitamente ou sites de pesquisa de registros MX na Internet.

  1. Em um prompt de comando, digite nslookupe pressione Enter. Esse comando abre a sessão Nslookup.

  2. Digite set type=mx e pressione Enter.

  3. Digite o nome do domínio do qual você deseja localizar o registro de MX. Por exemplo, para encontrar o registro MX para o domínio fabrikam.com, digite fabrikam.com.e pressione Enter.

    Observação

    Ao usar um ponto final ( . ), você evita que qualquer sufixo padrão de DNS seja adicionado acidentalmente ao nome de domínio.

    A saída do comando será parecida com o seguinte:

    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
    

    Você pode usar qualquer um dos nomes de host ou endereços IP que estejam associados aos registros de MX como o servidor SMTP de destino. Um valor menor para preferência (preferência = 10 vs. 20) indica um servidor SMTP preferencial. Vários registros MX e valores diferentes de preferência são usados para balanceamento de carga e tolerância a falhas.

  4. Quando estiver pronto para encerrar a sessão Nslookup, digite exite pressione Enter.

Etapa 3: usar Telnet na Porta 25 para testar a comunicação SMTP

Neste exemplo, vamos usar os valores a seguir. Ao executar os comandos em seu servidor, substitua esses valores por outros para o servidor SMTP da sua organização, domínio etc.

  • Servidor SMTP de destino: mail1.fabrikam.com
  • Domínio de origem: contoso.com
  • Endereço de email do remetente: chris@contoso.com
  • Endereço de email do destinatário: kate@fabrikam.com
  • Assunto da mensagem: Teste da Contoso
  • Corpo da mensagem: Esta é uma mensagem de teste

Dica

Os comandos no Cliente Telnet não são sensíveis a casos. Os verbos de comando SMTP neste exemplo são capitalizados para maior clareza. Você não pode usar a chave de backspace na sessão telnet depois de se conectar ao servidor SMTP de destino. Se você cometer um erro ao digitar um comando SMTP, precisará pressionar Enter e digitar o comando novamente. Comandos ou erros de sintaxe SMTP não reconhecidos resultam em uma mensagem de erro semelhante a esta: 500 5.3.3 Unrecognized command.

  1. Abra uma janela prompt de comando, digite telnete pressione Enter.

    Esse comando abre a sessão do Telnet.

  2. Digite set localecho e pressione Enter.

    Esse comando opcional permite visualizar os caracteres à medida que são digitados, e pode ser necessário para alguns servidores SMTP.

  3. Digite set logfile <filename> e pressione Enter.

    Este comando opcional habilita o registro em log e especifica o arquivo de log para a sessão telnet. Se você especificar apenas um nome de arquivo, o arquivo de log estará localizado na pasta atual. Se você especificar um caminho e um nome de arquivo, o caminho precisará estar no computador local e talvez seja necessário inserir o caminho e o nome do arquivo no formato Windows DOS 8.3 (nome curto sem espaços). O caminho precisa existir, mas o arquivo de log é criado automaticamente.

  4. Digite OPEN mail1.fabrikam.com 25 e pressione Enter.

  5. Digite EHLO contoso.com e pressione Enter.

  6. Digite MAIL FROM:<chris@contoso.com> e pressione Enter.

  7. Digite RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure e pressione Enter.

    O comando NOTIFY opcional especifica as mensagens de DSN (notificação de status de entrega) específicas (também conhecidas como mensagens de salto, relatórios não informativos ou NDRs) que o SMTP é necessário para fornecer. Neste exemplo, você está solicitando uma mensagem DSN para entrega de mensagens bem-sucedida ou com falha.

  8. Digite DATA e pressione Enter.

  9. Digite Subject: Test from Contoso e pressione Enter.

  10. Pressione Enter novamente.

    Uma linha em branco é necessária entre o campo Assunto: e o corpo da mensagem.

  11. Digite This is a test message e pressione Enter.

  12. Digite um período ( . ) e pressione Enter.

  13. Para desconectar-se do servidor SMTP, digite QUITe pressione Enter.

  14. Para fechar a sessão telnet, digite quite pressione Enter.

Uma sessão bem-sucedida usando as etapas acima é semelhante a isto:

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

Etapa 4: mensagens de êxito e de erro na Sessão do Telnet

Esta seção fornece informações sobre as respostas de êxito e de falha para os comandos utilizados no exemplo anterior.

Observação

Os códigos de resposta SMTP de três dígitos que são definidos no RFC 5321 são iguais para todos os servidores SMTP de mensagens, mas as descrições nas respostas podem ser um pouco diferentes.

Códigos de resposta SMTP

Os servidores SMTP respondem aos comandos com uma variedade de códigos numéricos resposta no formato x.y.z, em que:

  • X indica se o comando foi bom, ruim ou incompleto.
  • Y indica o tipo de resposta que foi enviada.
  • Z fornece informações adicionais sobre o comando.

Quando uma resposta é recebida pelo servidor que abriu a conexão, ele pode informar se o servidor remoto aceita o comando e está pronto para o próximo ou se ocorreu um erro.

O primeiro dígito (X) é particularmente importante de entender porque indica o êxito ou a falha do comando que foi enviado. Aqui estão seus valores possíveis e seus significados.

Código de resposta Significado
2.y.z O comando enviado foi concluído com êxito no servidor remoto. O servidor remoto está pronto para o próximo comando.
3.y.z O comando foi aceito, mas o servidor remoto precisa de mais informações antes que a operação possa ser concluída. O servidor de envio precisa enviar um novo comando com as informações necessárias.
4.y.z O comando não foi aceito pelo servidor remoto por um motivo que pode ser temporário. O servidor de envio deve tentar se conectar novamente mais tarde para ver se o servidor remoto pode aceitar com êxito o comando. O servidor de envio continuará a tentar novamente a conexão até que uma conexão bem-sucedida seja concluída (indicada por um código 2.y.z) ou falhe permanentemente (indicada por um código 5.y.z).
Um exemplo de erro temporário é o baixo espaço de armazenamento no servidor remoto. Depois que mais espaço for disponibilizado, o servidor remoto deverá ser capaz de aceitar com êxito o comando.
5.y.z O comando não foi aceito pelo servidor remoto por um motivo que não é recuperável. O servidor de envio não tentará novamente a conexão e enviará um relatório de não entrega de volta para o usuário que enviou a mensagem.
Um exemplo de um erro irrecuperável é uma mensagem enviada a um endereço de email que não existe.

A tabela acima baseia-se nas informações fornecidas pelo RFC 5321 (Protocolo de Transferência de Email Simples), seção 4.2.1. Informações adicionais, incluindo descrições dos segundo (Y) e terceiros dígitos (Z) de códigos de resposta SMTP estão incluídas nesta seção e nas seções 4.2.2 e 4.2.3.

Comando OPEN

Resposta com êxito: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

Falha na resposta: Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Possíveis motivos para falha:

  • O serviço SMTP de destino não está disponível.
  • Restrições no firewall de destino.
  • Restrições no firewall de origem.
  • FQDN ou endereço IP incorreto do servidor SMTP de destino.
  • Número de porta incorreta.

Comando EHLO

Resposta com êxito: 250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Falha na resposta: 501 5.5.4 Invalid domain name

Possíveis motivos para falha:

  • Caracteres inválidos no nome do domínio.
  • Restrições de conexão sobre o servidor SMTP de destino.

Observação

EHLO é o verbo ESMTP (Protocolo de Transferência de Mensagem Simples Estendida) definido no RFC 5321. Servidores ESMTP podem anunciar seus recursos durante a conexão inicial. Esses recursos incluem o tamanho máximo da mensagem aceita e os métodos de autenticação com suporte. HELO é o mais antigo verbo SMTP que está definido no RFC 821. A maioria dos servidores de mensagens SMTP suportam ESMTP e EHLO. Se o servidor que não é exchange ao qual você está tentando se conectar não oferecer suporte ao EHLO, você poderá usar o HELO.

Comando MAIL FROM

Resposta com êxito: 250 2.1.0 Sender OK

Falha na resposta: 550 5.1.7 Invalid address

Possíveis motivos de falha: um erro de sintaxe no endereço de email do remetente.

Falha na resposta: 530 5.7.1 Client was not authenticated

Possíveis motivos para falha: o servidor de destino não aceita envios anônimos de mensagens. Você receberá esse erro se tentar usar o Telnet para enviar uma mensagem diretamente a um servidor da Caixa de Correio que não tem um conector De recebimento configurado para aceitar conexões anônimas.

Comando RCPT TO

Resposta com êxito: 250 2.1.5 Recipient OK

Falha na resposta: 550 5.1.1 User unknown

Possíveis motivos de falha: o destinatário especificado não existe na organização.