Ir para o conteúdo

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

5 minuto de leitura
0

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:

  1. 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
  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. 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
  3. 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:

  1. 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.

  2. 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
  3. 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
  4. 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