Usar Telnet para testar a comunicação SMTP

 

Aplica-se a: Exchange Server 2010 SP2, Exchange Server 2010 SP3

Tópico modificado em: 2016-11-28

Este tópico explica como usar a Telnet para testar a comunicação SMTP entre servidores do sistema de mensagens. Por padrão, o SMTP atende na porta 25. Se você usar Telnet na porta 25, poderá inserir os comandos SMTP que são usados para conectar a um servidor SMTP e enviar uma mensagem exatamente como se sua sessão Telnet fosse um servidor do sistema de mensagens SMTP. Você pode ver o sucesso ou a falha de cada etapa da conexão e do processo de envio de mensagens.

Aqui estão os cenários nos quais você talvez queira usar Telnet para testar a comunicação SMTP de ou para servidores de transporte existentes na organização do Microsoft Exchange Server:

  • Conectar ao servidor de Transporte de Borda da organização a partir de um host localizado fora da rede de perímetro e enviar uma mensagem de teste.

  • Conectar a um servidor do sistema de mensagens remoto a partir do servidor de Transporte de Borda da organização e enviar uma mensagem de teste.

O procedimento neste tópico mostra como usar o Cliente Telnet, que é um componente incluído no Microsoft Windows. Clientes Telnet de terceiros podem exigir uma sintaxe diferente daquela do componente Telnet do Windows.

Pré-requisitos

  • Configurar um conector de Recebimento para permitir acesso anônimo ou autenticação Básica   Como as transferências de mensagem que normalmente ocorrem entre servidores de Transporte de Hub são criptografadas e autenticadas, o servidor de Transporte de Hub interno deve ter um conector de Recebimento configurado para permitir acesso anônimo ou autenticação Básica para receber mensagens durante o uso de Telnet na porta 25 para testar a comunicação. O acesso anônimo é obrigatório para servidores voltados para a Internet.

    Dica

    Ao enviar uma mensagem para um conector de recebimento que aceita autenticação básica, você deve ter um utilitário para converter as configurações de texto que são usadas para o nome de usuário e a senha no formato Base64. Como o nome de usuário e a senha são facilmente distinguíveis quando a autenticação básica é usada, não recomendamos autenticação básica sem criptografia.

  • Conectar a um servidor de sistema de mensagens remoto   Você talvez também queira se conectar a um servidor de sistema de mensagens remoto a partir do servidor de Transporte de Borda da organização. Isso ajudará a evitar a rejeição da mensagem de teste pelos servidores SMTP voltados para a Internet configurados para validar o endereço IP de origem, o nome de domínio do Sistema de Nomes de Domínio (DNS) correspondente e o endereço IP de consulta reversa de qualquer host da Internet que tentar enviar uma mensagem para o servidor.

  • Instalar e/ou habilitar o Cliente Telnet   Você talvez precise realizar uma ou mais das tarefas a seguir antes de usar Telnet para testar a comunicação SMTP entre servidores de sistema de mensagens:

    • Instale o Cliente Telnet, caso ainda não tenha feito isso. Consulte Instalar o Cliente Telnet para ver detalhes sobre como instalar o Cliente Telnet no Windows Vista ou no Windows Server 2008.

    • Habilite o Cliente Telnet no Windows Server 2008. Consulte o procedimento posteriormente neste tópico.

  • Localize o FQDN ou o endereço IP de um servidor SMTP. Se você não souber o FQDN ou o endereço IP, será possível usar Nslookup para localizar o FQDN ou o endereço IP de um servidor SMTP. Consulte o procedimento posteriormente neste tópico.

Habilitar o Cliente Telnet no Windows Server 2008

A associação no grupo Administradores local do Windows Server 2008, ou equivalente, é o mínimo obrigatório para concluir esse procedimento.

No Windows Server 2008, o Cliente Telnet está desabilitado por padrão. Para habilitá-lo, siga estas instruções:

  1. Abra Gerenciador de Servidores.

  2. Clique em Ação e selecione Adicionar Recursos.

  3. Selecione Cliente Telnet e clique em Avançar.

  4. Clique em Instalar e em Fechar para concluir a instalação do Cliente Telnet.

Usar Nslookup para localizar o FQDN ou o endereço IP de um servidor SMTP

Para se conectar a um servidor SMTP de destino usando Telnet na porta 25, você deve usar o nome de domínio totalmente qualificado (FQDN) ou o endereço IP do servidor SMTP. Se o FQDN ou o endereço IP for desconhecido, a maneira mais fácil de localizar essas informações é usando a ferramenta de linha de comando Nslookup para localizar o registro MX do domínio de destino.

  1. No prompt de comando, digite nslookup e pressione ENTER. Esse comando abre a sessão Nslookup.

  2. Digite set type=mx e pressione ENTER.

  3. Digite set timeout=20 e pressione ENTER. Por padrão, os servidores de DNS do Windows têm um limite de tempo excedido de consulta do DNS recursivo de 15 segundos.

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

    Dica

    O ponto final à direita ( . ) indica um FQDN. O uso do ponto à direita impede que quaisquer sufixos de DNS padrão que estejam configurados para a sua rede sejam adicionados involuntariamente ao nome do domínio.

    A saída do comando se assemelhará à 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 de preferência indica um servidor SMTP preferencial. Você pode usar vários registros de MX e valores diferentes de preferência para balanceamento de carga e tolerância a falhas.

  5. Quando estiver pronto para encerrar a sessão Nslookup, digite exit e pressione ENTER.

Dica

O firewall ou as restrições de proxy da Internet que são impostas à rede interna da organização podem impedir o uso da ferramenta Nslookup para consultar servidores públicos de DNS na Internet.
Os registros de MX não são estritamente necessários para o fluxo interno de mensagens dentro de uma organização do Exchange. Se você tiver que localizar o FQDN de qualquer servidor de Transporte de Hub ou servidor de Transporte de Borda inscrito em sua organização, poderá usar o seguinte comando no Shell de Gerenciamento do Exchange: Get-ExchangeServer | where {$.isHubTransportServer -eq $true -or $.isEdgeServer -eq $true} | Format-List Fqdn,ServerRole
Para obter mais informações, consulte Get-ExchangeServer e Pipelining.

Usar Telnet na porta 25 para testar a comunicação SMTP

Para fins de exemplo, o seguinte procedimento usa os valores descritos na lista a seguir:

  • 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 de Contoso

  • Corpo da mensagem   Esta é uma mensagem de teste

    Dica

    Você deve usar sempre um endereço de email de remetente válido para que as mensagens de notificação de falha na entrega geradas pelo servidor SMTP de destino sejam entregues ao remetente da mensagem.

Os comandos no Cliente Telnet não diferenciam maiúsculas de minúsculas. Os verbos do comando SMTP estão em maiúsculas por questões de clareza.

  1. No prompt de comandos, digite telnet e pressione ENTER. Esse comando abre a sessão Telnet.

  2. Digite set localecho e pressione ENTER. Esse comando opcional permite visualizar os caracteres à medida que são digitados. Essa configuração pode ser necessária para alguns servidores SMTP.

  3. Digite set logfile*<nomedearquivo>*. Esse comando opcional permite fazer logon na sessão Telnet do arquivo de log especificado. Se você especificar apenas um nome de arquivo, o local do arquivo de log será o diretório de trabalho atual. Se você especificar um caminho e um nome de arquivo, o caminho deverá ser o local para o computador. O caminho e o nome do arquivo especificados devem ser digitados no formato Microsoft DOS 8.3. O caminho especificado já deverá existir. Se você especificar um arquivo de log inexistente, ele será criado para você.

  4. Digite open mail1.fabrikam.com 25 e pressione ENTER.

    Dica

    Não é possível usar a tecla backspace depois de conectar ao servidor SMTP de destino dentro da sessão Telnet. Se você cometer um erro ao digitar um comando SMTP, deverá pressionar ENTER e digitar o comando novamente. Comandos SMTP não reconhecidos ou erros de sintaxe resultam em uma mensagem de erro semelhante à seguinte:

    500 5.3.3 Unrecognized command
    
  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 opcional NOTIFY define as mensagens particulares de notificação de status de entrega que o servidor SMTP de destino deve fornecer ao remetente. As mensagens de notificação de status de entrega são definidas no RFC 1891. Nesse caso, você está solicitando uma mensagem de notificação de status de entrega sobre o êxito ou a falha da entrega da mensagem.

  8. Digite DATA e pressione ENTER. Você receberá uma resposta semelhante à seguinte:

    354 Start mail input; end with <CLRF>.<CLRF>
    
  9. Digite Assunto: Teste de Contoso e pressione ENTER.

  10. Pressione ENTER. O RFC 2822 exige uma linha em branco entre o campo de cabeçalho Subject: e o corpo da mensagem.

  11. Digite Esta é uma mensagem de teste e pressione ENTER.

  12. Pressione ENTER, digite um ponto ( . ) e pressione ENTER. Você receberá uma resposta semelhante à seguinte:

    250 2.6.0 <GUID> Queued mail for delivery
    
  13. Para se desconectar do servidor SMTP de destino, digite QUIT e pressione ENTER. Você receberá uma resposta semelhante à seguinte:

    221 2.0.0 Service closing transmission channel
    
  14. Para fechar a sessão Telnet, digite quit e pressione ENTER.

Avaliar os resultados de uma sessão Telnet

Esta seção fornece informações sobre as respostas que podem ser fornecidas para os seguintes comandos inseridos no exemplo anterior:

  • Open mail1.fabrikam.com 25

  • EHLO contoso.com

  • MAIL FROM:chris@contoso.com

  • RCPT TO:kate@fabrikam.com NOTIFY=success,failure

    Dica

    Os códigos de resposta SMTP de 3 dígitos que são definidos no RFC 2821 são iguais para todos os servidores do sistema de mensagens SMTP. As descrições de texto podem ser ligeiramente diferentes em alguns dos servidores do sistema de mensagens SMTP. No exemplo anterior, o computador de destino está executando o Exchange Server 2010.

Open mail1.fabrikam.com 25

Resposta bem-sucedida   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 de falha

  • O serviço SMTP de destino não está disponível.

  • Há restrições no firewall de destino.

  • Há restrições no firewall de origem.

  • Um FQDN incorreto ou o endereço IP do servidor SMTP de destino foi especificado.

  • Um número de porta incorreto foi especificado.

EHLO contoso.com

Resposta bem-sucedida   250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Falha na resposta   501 5.5.4 Invalid domain name

Possíveis motivos de falha   Há caracteres inválidos no nome de domínio. Ou então, há restrições de conexão no servidor SMTP de destino.

Dica

EHLO é o verbo ESMTP definido no RFC 2821. Os 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 suportados. HELO é o verbo SMTP mais antigo que é definido no RFC 821. A maioria dos servidores do sistema de mensagens SMTP suporta ESMTP e EHLO.

MAIL FROM:chris@contoso.com

Resposta bem-sucedida   250 2.1.0 Sender OK

Falha na resposta   550 5.1.7 Invalid address

Possíveis motivos de falha   Há 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 de falha   O servidor de destino não aceita envios de mensagens anônimas. Você receberá esse erro se tentar usar Telnet para enviar uma mensagem diretamente para um servidor de Transporte de Hub.

RCPT TO:kate@fabrikam.com NOTIFY=success,failure

Resposta bem-sucedida   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.

 © 2010 Microsoft Corporation. Todos os direitos reservados.