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

Lecture de 5 minute(s)
0

Mon protocole SMTP (Simple Mail Transfer Protocol) Amazon Simple Email Service (Amazon SES) renvoie un dépassement de délai. Comment résoudre les problèmes de connectivité SMTP ou les erreurs de délai d'expiration avec Amazon SES ?

Brève description

Les connexions avec délai d'expiration indiquent généralement que votre client n'est pas en mesure d'établir une connexion TCP avec le point de terminaison public Amazon SES. Afin de résoudre les problèmes de connectivité SMTP ou les erreurs de délai d'expiration avec Amazon SES, commencez par résoudre les problèmes de connexion TCP de l'application. Si la connexion TCP aboutit, résolvez les problèmes de négociation SSL/TLS.

Important : 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 requérant du trafic sur le port SMTP 25, vous pouvez demander la suppression de cette restriction.

Solution

Résolution des problèmes de connexion TCP de l'application

1.    Exécutez les commandes telnet, netcat (nc) ou Test-NetConnection suivantes. Remplacez email-smtp.us-east-1.amazonaws.com par le point de terminaison SMTP Amazon SES que vous utilisez :

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-

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

Test-NetConnection -Port 587 -ComputerName email-smtp.us-west-2.amazonaws.com

2.    Notez la sortie. Remarque : si la connexion aboutit, passez à la section Résolution des problèmes de négociation SSL/TLS. Si la connexion échoue, passez à l'étape 3.

Connexion réussie

La commande telnet renvoie une sortie similaire à ce qui suit :

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

La commande PowerShell renvoie une sortie similaire à ce qui suit :

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

Échec de la connexion (délai d'expiration)

La commande telnet renvoie une sortie similaire à ce qui suit :

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

La commande PowerShell renvoie une sortie similaire à ce qui suit :

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 vos règles de pare-feu local, vos routes et vos listes de contrôle d'accès (ACL) autorisent le trafic sur le port SMTP que vous utilisez. Confirmez également que votre application d'envoi dispose d'un 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 les éléments suivants :

Résolution des problèmes de négociation SSL/TLS

Si votre connexion TCP aboutit mais que vous rencontrez toujours des problèmes de connectivité ou de délai d'expiration, vérifiez s'il existe des problèmes liés aux protocoles SSL/TLS.

1.    À partir d'une instance Linux EC2, exécutez la commande openssl. Pour les instances Windows Amazon EC2, veuillez consulter la section Test de votre connexion à l'interface SMTP Amazon SES à l'aide de la ligne de commande et sélectionnez l'onglet 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

Remarque : remplacez email-smtp.us-east-1.amazonaws.com par le point de terminaison SMTP Amazon SES que vous utilisez. La modification de l'emplacement de l'autorité de certification (CA) par défaut peut entraîner des problèmes lors de l'exécution des commandes précédentes. Assurez-vous d'identifier l'emplacement du fichier CA bundle par défaut lors de l'installation d'OpenSSL.

2.    Notez la sortie. Les réponses attendues sont SMTP 220 et SMTP 250.

3.    Si vous n'obtenez pas la sortie attendue, procédez comme suit :

  • Vérifiez que le magasin de certificats SSL/TLS est configuré correctement.
  • Vérifiez que votre application d'envoi dispose du chemin d'accès correct au certificat.
  • Vérifiez que le certificat Amazon SES est installé sur votre serveur.

Remarque : vous pouvez tester afin de savoir si les certificats corrects sont installés. Pour obtenir des instructions, veuillez consulter la section À propos des certificats de l'article À propos de la migration d'Amazon Trust Services.


Informations connexes

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