técnico · resposta com fontes
Como verificar se a porta 587 está aberta
Você pode verificar se a porta 587 está aberta usando uma ferramenta de linha de comando, como telnet, netcat ou PowerShell, para tentar uma conexão com o seu servidor SMTP. Se a conexão funcionar, o servidor normalmente responde com um código de saudação 220, indicando que a porta está aberta e aceitando conexões para envio de e-mail.
Como usar o telnet para testar a conectividade
O telnet é uma ferramenta padrão para testar a conectividade TCP. Execute o comando telnet smtp.example.com 587 no terminal. Se a tela ficar em branco ou mostrar uma saudação do servidor, a porta está aberta. Se você receber um erro de conexão recusada ou de timeout, a porta está fechada ou bloqueada por um firewall. Observe que talvez seja necessário ativar o telnet nos Recursos do Windows antes de usá-lo.
Como usar o netcat (nc) no Linux e no macOS
O netcat é um utilitário poderoso para depuração de rede. Use o comando nc -zv smtp.example.com 587. A flag z faz o netcat procurar um daemon escutando sem enviar dados, e a flag v ativa a saída detalhada. Uma saída bem-sucedida informa explicitamente que a conexão com a porta funcionou, enquanto uma falha indica timeout ou recusa da conexão.
Como usar o PowerShell no Windows
Para usuários de Windows sem telnet, o PowerShell oferece o cmdlet Test-NetConnection. Execute Test-NetConnection -ComputerName smtp.example.com -Port 587. A saída inclui um valor booleano em TcpTestSucceeded. Se ele for True, a porta 587 está aberta. Esse método é o preferido em ambientes Windows modernos, pois fornece informações de diagnóstico detalhadas sobre o caminho de rede.
Como resolver portas bloqueadas
Se a porta 587 estiver fechada, verifique as configurações do firewall local e as restrições do seu provedor de internet. Muitos provedores de internet residenciais bloqueiam as portas de e-mail de saída para evitar spam. Você pode verificar a sua configuração externa com o SendHQ ou as ferramentas gratuitas dele (https://sendhq.cc/tools) para garantir que o seu servidor de e-mail esteja acessível pela internet pública. Confirme que os security groups do seu provedor de nuvem permitem tráfego de saída na porta TCP 587.
Entenda a porta 587 e o STARTTLS
A porta 587 é a porta padrão para envio de e-mail (submission). Ao contrário da porta 465, que usa TLS implícito, a porta 587 começa com uma conexão em texto claro e migra para uma conexão segura com o comando STARTTLS. Por isso, uma simples verificação TCP confirma que a porta está aberta, mas é preciso um handshake SMTP completo para verificar se a criptografia está funcionando corretamente.
Perguntas que as equipes fazem
Qual é a diferença entre a porta 25 e a 587?
A porta 25 é usada principalmente para relay entre servidores, enquanto a porta 587 é a porta designada para o envio de e-mails do cliente para o servidor.
Por que a minha conexão na porta 587 está dando timeout?
Timeouts geralmente indicam que um firewall está descartando os pacotes. Verifique o firewall do sistema operacional local, o roteador da rede ou as regras do security group na nuvem.
Uma conexão bem-sucedida via telnet significa que o e-mail será enviado?
Não, ela só confirma que a porta TCP está aberta. Você ainda precisa de uma autenticação válida e dos comandos SMTP corretos para enviar um e-mail com sucesso.
A porta 587 é segura?
A porta 587 é segura quando usada com STARTTLS, que criptografa a comunicação depois que a conexão inicial é estabelecida.
Fontes primárias
- Service Name and Transport Protocol Port Number Registry — IANA (em inglês)
- RFC 3207: SMTP Service Extension for Secure SMTP over Transport Layer Security — RFC Editor (em inglês)
- RFC 8314: Cleartext Considerations for Post-SMTP Email Protocols — RFC Editor (em inglês)