Como solucionar problemas de conectividade ou de tempo limite do SMTP com o Amazon SES?
Meu Simple Mail Transfer Protocol (SMTP) do Amazon Simple Email Service (Amazon SES) está atingindo o tempo limite. Como resolver erros de conectividade ou de tempo limite do SMTP com o Amazon SES?
Breve descrição
As conexões de tempo limite normalmente indicam que seu cliente não pode estabelecer uma conexão TCP com o endpoint público do Amazon SES. Para resolver erros de conectividade SMTP ou de tempo limite com o Amazon SES, primeiro solucione o problema da conexão TCP do aplicativo. Se a conexão TCP for bem-sucedida, solucione problemas nas negociações de SSL/TLS.
Importante: por padrão, o Amazon Elastic Compute Cloud (Amazon EC2) restringe o tráfego de saída da Amazon Virtual Private Cloud (Amazon VPC) na porta 25 para todas as instâncias do Amazon EC2. Para aplicativos que exigem tráfego na porta SMTP 25, você pode solicitar a remoção dessa restrição.
Resolução
Solucione problemas da conexão TCP do aplicativo
1. Execute os seguintes comandos telnet, netcat (nc) ou Test-NetConnection. Substitua email-smtp.us-east-1.amazonaws.com pelo endpoint SMTP do Amazon SES que você está usando:
telnet email-smtp.us-east-1.amazonaws.com 587 telnet email-smtp.us-east-1.amazonaws.com 25 telnet email-smtp.us-east-1.amazonaws.com 465 nc -vz email-smtp.us-east-1.amazonaws.com 587 nc -vz email-smtp.us-east-1.amazonaws.com 25 nc -vz email-smtp.us-east-1.amazonaws.com 465
-ou-
No PowerShell, execute o seguinte comando para se conectar ao servidor SMTP do Amazon SES:
Test-NetConnection -Port 587 -ComputerName email-smtp.us-west-2.amazonaws.com
2. Observe a saída. Se a conexão for bem-sucedida, vá para a seção Solucione problemas de negociações de SSL/TLS. Se a conexão não for bem-sucedida, vá para a etapa 3.
Conexão bem-sucedida
O comando telnet retorna uma saída semelhante à seguinte:
Trying 35.170.126.22... Connected to email-smtp.us-east-1.amazonaws.com. Escape character is '^]'. 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-A12BCD3EF example0mJncW410pSau
O comando PowerShell retorna uma saída semelhante à seguinte:
ComputerName : email-smtp.us-west-2.amazonaws.com RemoteAddress : 198.51.100.126 RemotePort : 587 InterfaceAlias : Ethernet SourceAddress : 203.0.113.46 TcpTestSucceeded : True
Conexão malsucedida (tempo limite)
O comando telnet retorna uma saída semelhante à seguinte:
Trying 18.232.32.150... telnet: connect to address 18.232.32.150: Connection timed out
O comando PowerShell retorna uma saída semelhante à seguinte:
WARNING: Ping to 52.39.11.136 failed with status: TimedOut ComputerName : email-smtp.us-west-2.amazonaws.com RemoteAddress : 35.155.47.104 RemotePort : 587 InterfaceAlias : Ethernet 2 SourceAddress : 10.0.0.140 PingSucceeded : False PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : False
3. Para conexões malsucedidas, confirme se as regras, rotas e listas de controle de acesso (ACLs) de firewall locais permitem tráfego na porta SMTP que você está usando. Além disso, confirme se o aplicativo de envio tem acesso à Internet.
Por exemplo, se você estiver usando uma instância do EC2 para enviar e-mails e se conectar ao endpoint do SMTP, verifique o seguinte:
- As regras de saída (saída) do grupo de segurança devem permitir tráfego para o servidor SMTP na porta TCP 25, 587 ou 465.
- As regras de saída (saída) da ACL da rede devem permitir tráfego para o servidor SMTP na porta TCP 25, 587 ou 465.
- As regras de entrada (entrada) da ACL da rede devem permitir o tráfego do servidor SMTP nas portas TCP 1024-65535.
- A instância do EC2 deve ter conectividade com a Internet.
Solucionar problemas nas negociações de SSL/TLS
Se sua conexão TCP for bem-sucedida, mas você ainda tiver problemas de conectividade ou tempo limite, verifique se há problemas com SSL/TLS.
1. Em uma instância do EC2 Linux, execute o comando openssl. Para instâncias Windows do Amazon EC2, consulte Teste sua conexão com a interface SMTP do Amazon SES usando a linha de comando e escolha a guia PowerShell.
openssl s_client -crlf -connect email-smtp.us-east-1.amazonaws.com:465 openssl s_client -crlf -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:587
Observação: substitua email-smtp.us-east-1.amazonaws.com pelo endpoint SMTP do Amazon SES que você está usando. Modificar a localização da autoridade de certificação (CA) padrão pode causar problemas ao executar os comandos anteriores. Ao instalar o OpenSSL, certifique-se de identificar a localização do arquivo padrão do pacote CA.
2. Observe a saída. As respostas esperadas são SMTP 220 e SMTP 250.
3. Se você não obtiver a saída esperada, verifique o seguinte:
- Verifique se o repositório de certificados SSL/TLS está configurado corretamente.
- Confirme se o aplicativo de envio tem o caminho correto para o certificado.
- Verifique se o certificado do Amazon SES está instalado em seu servidor.
Observação: você pode testar se os certificados corretos estão instalados. Para obter instruções, acesse Sobre a migração do Amazon Trust Services e consulte a seção Sobre os certificados.
Informações relacionadas
Como usar a interface SMTP do Amazon SES para enviar e-mails
Vídeos relacionados
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 10 meses
- AWS OFICIALAtualizada há 2 anos