Usar Telnet para testar a comunicação SMTP
Aplica-se a: Exchange Server 2010
Tópico modificado em: 2009-12-08
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:
- Abra Gerenciador de Servidores.
- Clique em Ação e selecione Adicionar Recursos.
- Selecione Cliente Telnet e clique em Avançar.
- 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.
No prompt de comando, digite nslookup e pressione ENTER. Esse comando abre a sessão Nslookup.
Digite set type=mx e pressione ENTER.
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.
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.
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.
No prompt de comandos, digite telnet e pressione ENTER. Esse comando abre a sessão Telnet.
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.
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ê.
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
Digite EHLO contoso.com e pressione ENTER.
Digite MAIL FROM:chris@contoso.com e pressione ENTER.
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.
Digite DATA e pressione ENTER. Você receberá uma resposta semelhante à seguinte:
354 Start mail input; end with <CLRF>.<CLRF>
Digite Assunto: Teste de Contoso e pressione ENTER.
Pressione ENTER. O RFC 2822 exige uma linha em branco entre o campo de cabeçalho
Subject:
e o corpo da mensagem.Digite Esta é uma mensagem de teste e pressione ENTER.
Pressione ENTER, digite um ponto ( . ) e pressione ENTER. Você receberá uma resposta semelhante à seguinte:
250 2.6.0 <GUID> Queued mail for delivery
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
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.