Meu Simple Mail Transfer Protocol (SMTP) do Amazon Simple Email Service (Amazon SES) está atingindo o tempo limite.
Breve descrição
Você enfrenta problemas de tempo limite de conexão quando seu cliente não consegue estabelecer uma conexão TCP com o endpoint público do Amazon SES. Para resolver erros de conectividade do SMTP ou de tempo limite com o Amazon SES, primeiro solucione o problema da conexão TCP da aplicação. Se a conexão TCP for bem-sucedida, solucione problemas nas negociações de SSL/TLS.
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 aplicações que exigem tráfego na porta 25 do SMTP, você pode solicitar a remoção dessa restrição. Ou use conexões do SMTP na porta 587 (STARTTLS) e na porta 465 (TLS Wrapper) que não tenham as mesmas restrições padrão da porta 25.
Resolução
Solucione problemas da conexão TCP da aplicação
Conclua as etapas a seguir:
-
Em seguida, execute o seguinte comando telnet:
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
Observação: substitua email-smtp.us-east-1.amazonaws.com pelo endpoint SMTP do Amazon SES que você está usando.
-ou-
Execute os seguintes comandos netcat (nc):
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 Windows 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
-
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. Se a conexão for bem-sucedida, o comando telnet retornará 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
Se a conexão chegar ao tempo limite, o comando telnet retornará uma saída semelhante à seguinte:
Trying 18.232.32.150...
telnet: connect to address 18.232.32.150: Connection timed out
Se sua conexão for bem-sucedida, o comando Test-NetConnection retornará 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
Se a conexão chegar ao tempo limite, o comando Test-NetConnection retornará 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
-
Para conexões malsucedidas, confirme se as regras, rotas e listas de controle de acesso à rede (ACL da rede) de firewall locais permitem tráfego na porta do SMTP que você está usando. Além disso, confirme se a aplicação 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 estiver enfrentando problemas de conectividade ou tempo limite, conclua as etapas a seguir para verificar se há problemas com SSL/TLS:
-
Conecte-se ao servidor SMTP do Amazon SES.
Para uma instância Linux do EC2, execute o seguinte comando:
openssl s_client -crlf -connect email-smtp.us-east-1.amazonaws.com:465
Observação: substitua email-smtp.us-east-1.amazonaws.com pelo endpoint SMTP do Amazon SES que você está usando.
Para uma instância Windows do EC2, consulte a guia PowerShell em Testando sua conexão com a interface SMTP do Amazon SES usando a linha de comando.
-
Para verificar se há problemas de SSL, execute o seguinte comando:
openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465
Se a conexão for bem-sucedida, você receberá uma resposta SMTP 220 semelhante à seguinte:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = email-smtp.us-west-2.amazonaws.com
verify return:1
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-VCSHDP1YZ A1b2C3d4E5f6G7h8I9j0
-
Para verificar se há problemas de TLS, execute o seguinte comando:
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
Se a conexão for bem-sucedida, você receberá uma resposta SMTP 250 semelhante à seguinte:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = email-smtp.us-west-2.amazonaws.com
verify return:1
250 Ok
-
Se você não obtiver uma resposta SMTP 220 para SSL ou uma resposta SMTP 250 para TLS, verifique o seguinte:
Você configurou corretamente o armazenamento de certificados SSL/TLS.
Confirme se a aplicação de envio tem o caminho correto para o certificado.
Você instalou o certificado Amazon SES em seu servidor.
**Observação:**Para verificar se você instalou os certificados corretos, consulte a seção Sobre os certificados em Sobre a migração do Amazon Trust Services.
Informações relacionadas
Como usar a interface SMTP do Amazon SES para enviar e-mails