Como usar a telnet para testar a comunicação SMTP

 

Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Tópico modificado em: 2006-11-14

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.

A lista a seguir descreve os cenários nos quais talvez você queira usar Telnet para testar a comunicação SMTP de ou para servidores de transporte existentes em sua 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.

Antes de começar

Por padrão, as transferências de mensagens que ocorrem entre os servidores de Transporte de Hub são criptografadas e autenticadas. Só é possível usar Telnet na porta 25 para enviar mensagens para um servidor interno de Transporte de Hub que tenha um conector de recebimento configurado para permitir acesso anônimo ou autenticação básica para receber mensagens. O acesso anônimo é necessário para servidores voltados para a Internet. 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.

Os servidores do sistema de mensagens SMTP voltados para a Internet de várias organizações são configurados para validar o endereço IP de origem, o nome de domínio do DNS (sistema de nomes de domínio) e o endereço IP de consulta reversa de qualquer host da Internet que tentar enviar uma mensagem ao servidor. Se você conectar um computador de teste à Internet e tentar enviar uma mensagem de teste para um servidor do sistema de mensagens remoto usando Telnet na porta 25, sua mensagem poderá ser rejeitada. Para atender aos requisitos de segurança que podem ser impostos pelo servidor do sistema de mensagens remoto, você poderá conectar o servidor do sistema de mensagens remoto de seu servidor de Transporte de Borda. Os domínios aceitos configurados no servidor de Transporte de Borda têm os registros de troca de mensagens (MX) do DNS, os registros de endereços (A) e os registros de consulta reversa que identificam o servidor de Transporte de Borda como uma origem de mensagens de email legítima e rastreável para aqueles domínios aceitos na Internet.

Os procedimentos deste tópico mostram como usar o cliente Microsoft Telnet que está incluído no Microsoft Windows Server 2003 e no Windows XP. Versões anteriores de clientes Telnet do Windows ou de terceiros podem exigir sintaxe diferente. Os comandos no cliente Telnet do Windows não fazem distinção de maiúsculas e minúsculas. Os verbos do comando SMTP estão em maiúsculas por questões de clareza.

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

Usando a ferramenta de linha de comando Nslookup para localizar o endereço IP de um servidor SMTP

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

Para usar a ferramenta Nslookup para localizar o endereço IP de um servidor SMTP

  1. No prompt de comandos, 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 de MX do domínio fabrikam.com, digite fabrikam.com. e pressione ENTER.

    Dica

    O ponto à 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.

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

O procedimento desta seção mostra como usar Telnet na porta 25 para testar a comunicação SMTP. O procedimento usa os valores que estão descritos na seguinte lista:

  • 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.

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

  1. Em um 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 <filename>. 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.

  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 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.

Interpretando os resultados de uma sessão Telnet com um servidor SMTP

Esta seção fornece detalhes sobre as respostas que podem ser fornecidas para os comandos inseridos no exemplo anterior.

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. Neste exemplo, o computador de destino está executando o Exchange Server 2007.

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.

Para obter mais informações

Para obter mais informações, consulte os tópicos a seguir: