Passer au contenu

Comment résoudre les problèmes de connectivité ou de délai d'expiration SMTP avec Amazon SES ?

Lecture de 5 minute(s)
0

Le protocole Simple Mail Transfer Protocol (SMTP) Amazon Simple Email Service (Amazon SES) arrive à expiration.

Brève description

Vous rencontrez des problèmes de délai d'expiration de la connexion lorsque le client ne parvient pas à établir de connexion TCP avec le point de terminaison Amazon SES public. Pour résoudre les erreurs de connectivité ou de délai d'expiration SMTP avec Amazon SES, commencez par résoudre les problèmes de connexion TCP de l'application. Si la connexion TCP est établie, résolvez alors les problèmes liés aux négociations SSL/TLS.

Par défaut, Amazon Elastic Compute Cloud (Amazon EC2) restreint le trafic sortant d'Amazon Virtual Private Cloud (Amazon VPC) sur le port 25 pour toutes les instances Amazon EC2. Pour les applications qui nécessitent du trafic sur le port SMTP 25, vous pouvez demander la suppression de cette restriction. Vous pouvez également utiliser des connexions SMTP sur le port 587 (STARTTLS) et le port 465 (TLS Wrapper) qui n'ont pas les mêmes restrictions par défaut que le port 25.

Résolution

Résoudre les problèmes de connexion TCP de l'application

Procédez comme suit :

  1. Exécutez les commandes telnet suivantes :

    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

    Remarque : Remplacez email-smtp.us-east-1.amazonaws.com par le point de terminaison SMTP Amazon SES que vous utilisez.
    -ou-

    Exécutez les commandes netcat (nc) suivantes :

    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-

    Dans Windows PowerShell, exécutez la commande suivante pour vous connecter au serveur SMTP Amazon SES :

    Test-NetConnection -Port 587 --ComputerName email-smtp.us-west-2.amazonaws.com
  2. Notez la sortie. Si la connexion est établie, passez alors à la section Résoudre les problèmes liés aux négociations SSL/TLS. Si la connexion échoue, passez alors à l'étape 3. Si la connexion est établie, la commande telnet renvoie alors une sortie similaire à la suivante :

    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

    Si la connexion expire, la commande telnet renvoie alors une sortie similaire à la suivante :

    Trying 18.232.32.150...  
    telnet: connect to address 18.232.32.150: Connection timed out

    Si la connexion est établie, la commande Test-NetConnection renvoie alors une sortie similaire à la suivante :

    ComputerName     : email-smtp.us-west-2.amazonaws.com  
    RemoteAddress    : 198.51.100.126  
    RemotePort       : 587  
    InterfaceAlias   : Ethernet  
    SourceAddress    : 203.0.113.46  
    TcpTestSucceeded : True

    Si la connexion expire, la commande Test-NetConnection renvoie alors une sortie similaire à la suivante :

    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. En cas d'échec des connexions, vérifiez que les règles du pare-feu local, les itinéraires et les listes de contrôle d'accès au réseau (ACL réseau) autorisent le trafic sur le port SMTP que vous utilisez. Vérifiez également que votre application d'envoi a accès à Internet.

Par exemple, si vous utilisez une instance EC2 pour envoyer des e-mails et vous connecter au point de terminaison SMTP, vérifiez alors les points suivants :

Résoudre les problèmes liés aux négociations SSL/TLS

Si la connexion TCP est réussie, mais que vous rencontrez toujours des problèmes de connectivité ou de délai d'expiration, procédez alors comme suit pour rechercher des problèmes liés à SSL/TLS :

  1. Connectez-vous au serveur SMTP Amazon SES.
    Pour une instance Linux EC2, exécutez la commande suivante :

    openssl s_client -crlf -connect email-smtp.us-east-1.amazonaws.com:465

    Remarque : Remplacez email-smtp.us-east-1.amazonaws.com par le point de terminaison SMTP Amazon SES que vous utilisez.
    Pour une instance Windows EC2, consultez l'onglet PowerShell dans Tester de la connexion à l'interface SMTP Amazon SES à l'aide de la ligne de commande.

  2. Pour rechercher les problèmes liés à SSL, exécutez la commande suivante :

    openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    Si la connexion est établie, vous obtenez alors une réponse SMTP 220 similaire à la suivante :

    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. Pour rechercher les problèmes liés à TLS, exécutez la commande suivante :

    openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587

    Si la connexion est établie, vous obtenez alors une réponse SMTP 250 similaire à la suivante :

    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. Si vous n'obtenez pas de réponse SMTP 220 pour SSL ou SMTP 250 pour TLS, vérifiez alors les points suivants :
    Vous avez correctement configuré le magasin de certificats SSL/TLS.
    Le chemin au certificat est correct pour l'application d'envoi.
    Vous avez installé le certificat Amazon SES sur le serveur.

Remarque : Pour vérifier si vous avez installé les bons certificats, consultez la section À propos des certificats dans À propos de la migration Amazon Trust Services.

Informations connexes

Utilisation de l’interface SMTP Amazon SES pour envoyer des e-mails