Como solucionar problemas de conectividade ou de tempo limite do SMTP com o Amazon SES?

4 minuto de leitura
0

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:

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