qual é o comando que usamos no Windows e no Linux para verificar se um servidor SMTP remoto (192.168.5.5) está respondendo aos comandos SMTP?
Use telnet
.
telnet smtp.example.com 25
Notas:
telnet
não estiver instalado na sua versão do Windows.smtp.example.com
por192.168.5.5
telnet
você pode usar os comandos SMTP para conversar com o servidor:S: 220 smtp.server.com Pronto para Serviço de Transferência de Correio Simples C: HELO client.example.com Olá, S: 250 client.example.com C: CORREIO DE: S: 250 OK C: RCPT PARA: S: 250 OK C: DADOS S: 354 Enviar conteúdo da mensagem; termine com. C: C:. S: 250 OK, mensagem aceita para entrega: na fila como 12345 C: QUIT S: 221 Bye
onde S:
está o servidor e C:
é o cliente ( telnet
).
O Windows não possui o telnet ativado por padrão .. e o cliente telnet não é tão bom. Então, você também pode instalar o cygwin.
Então seria
nc 3.4.5.6 25
Se você deseja usar o telnet para conectar-se, é necessário habilitar o cliente telnet primeiro. Consulte o painel ctrl .. programas e recursos .. depois, na extrema esquerda, "ative ou desative os recursos do windows", clique lá. Em seguida, a janela aparece para ativar e desativar os recursos da janela, a lista está em ordem alfabética, clique em cliente de telnet. Você pode deixar o servidor telnet desmarcado. Por isso, apenas habilita o cliente telnet.
Você pode então fazer
telnet 3.4.5.6 25
Isso está habilitando o cliente telnet no Windows 7. Ele já está instalado, no sentido de que você não precisa apontar para arquivos de instalação, como quando os recursos do Windows precisavam ser instalados no xp, mas não está ativado. (E o XP tinha o cliente de telnet habilitado por padrão a propósito. Xp não tinha esse problema de coisas sendo instaladas e não habilitadas). A propósito, com o servidor telnet, se você marcasse a caixa, o serviço seria exibido em services.msc, mas não iniciado, o serviço seria listado, mas o que janelas em services.msc chama de 'desativado'. E, obviamente, geralmente não é recomendável que você execute um servidor telnet.
O fato é que, às vezes, eles podem usar um servidor SSL.
Existem dois tipos de SMTP com SSL, o mais antigo tende a estar na porta 465, que é o SSL implícito, que começa com o SSL. Eles são discutidos aqui https://www.fastmail.com/help/technical/ssltlsstarttls.html
Para isso, SSL implícito, nc ou telnet por si só não o ajudarão. Você precisaria de stunnel com (nc ou telnet). Ou, openssl. A forma mais comum de SMTP com SSL tende a estar na porta 587 E é SSL explícito, que inicia não SSL e depois SSL. Para isso, nc ou telnet podem ser usados apenas para verificar que é SMTP sobre SSL. O OpenSSL em execução na porta 25 pode ser SSL simples, mas geralmente é SSL explícito.
BTW, tecnicamente, não estamos mais falando sobre SSL, é tudo TLS. TLS seguido do SSL v3, você tem as versões TLS. O SSL é antigo, o TLS a partir do TLS 1.0 etc é mais moderno. O SSL 3.0 realmente diminuiu muito desde o bug do poodle.
Em relação ao openssl, o Grawity tem uma postagem épica que cobre isso, e outra resposta aqui também cobre isso. Os clientes de telnet ou netcat podem se comunicar por SSL?
(Você pode ou não precisar -crlf
)
openssl s_client -connect 1.2.3.4:465
openssl s_client -connect 1.2.3.4:465
openssl s_client -connect 1.2.3.4:587 -starttls smtp
openssl s_client -connect 1.2.3.4:25 -starttls smtp
Uma vez conectado, há comandos SMTP para que você possa enviar um email, mas não será necessário se quiser apenas ver se o servidor está respondendo.
Se você está apenas procurando uma resposta e não precisa enviar um email, o único momento em que você realmente precisa do openssl é o SSL implícito - porta 465