36 votes

Amazon EC2/SES SMTP Délai d’arrêt

J'ai un problème lorsque vous essayez d'envoyer des e-mails à partir de mon instance EC2 à l'aide de SMTP pour SES. Pour une raison que je suis sporadiques problèmes de délai d'attente, où je n'ai plus de contact avec l'hôte SMTP. Il est important de noter que l'envoi par le biais de SES œuvres probablement 75% du temps.

Je vais commencer avec quelques détails. Mon compte de SES travaille la plupart du temps. L'email de l'expéditeur a été vérifiée, et mes limites ont été augmentés à 10k/jour, 5 e-mails/seconde. J'ai l'impression que je voudrais obtenir une limite d'erreur spécifique si c'était lié à mes limites. Pour ma configuration SMTP, je suis en utilisant posfix w/TLS. J'ai posté un très semblables post sur le site officiel AWS SES forums, mais n'ont pas eu de succès encore là. Les informations de ce post est au bas de ce post.

Voici un exemple de l'échec de ce matin. Toutes les commandes, j'ai couru ci-dessous ont été exécutés à partir de l'instance EC2 que je suis en train d'envoyer des messages. Désolé pour le roman de la taille d'un post, je veux juste m'assurer que j'ai tout inclure.

Un courriel que j'ai envoyé à moi-même n'a pas été remis:

Jun 25 06:16:36 intranet01 postfix/smtp18832: 9E00C230DA: to=<myemailaddress>, relay=none, delay=150, delays=0.02/0.01/150/0, dsn=4.4.1, status=deferred (connect to email-smtp.us-east-1.amazonaws.comhttp://107.22.187.122:25: Connection timed out)

Et quand j'ai vu l'échec, j'ai essayé la connexion à l'e-mail de l'hôte sur le port 25. Je ne pouvais pas se connecter:

root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25  
Trying 174.129.28.151...  
^C

Quelques minutes plus tard, mon différés e-mail est finalement allé à travers:

Jun 25 06:23:14 intranet01 postfix/smtp18861: 9E00C230DA: to=<myemailaddress>, relay=email-smtp.us-east-1.amazonaws.comhttp://184.73.218.23:25, delay=548, delays=548/0.02/0.21/0.36, dsn=2.0.0, status=sent (250 Ok 0000013823cf7441-83710873-e946-4c80-8a54-0dd72bae6f30-000000)
Jun 25 06:23:14 intranet01 postfix/qmgr3972: 9E00C230DA: removed

Et maintenant je peux me connecter sur le port 25:

root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25  
Trying 107.20.152.208...  
Connected to email-smtp.us-east-1.amazonaws.com.  
Escape character is '^]'.  
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-222567251  
^]

Pour les coups de pied, j'ai décidé de regarder le SES hôte d'extrémité. Il s'avère que c'est juste un ELB cname, avec Un enregistrement qui pointe à interfaces multiples d'AZ.

root@intranet01 sbin# dig email-smtp.us-east-1.amazonaws.com  

; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.17.amzn1 <<>> email-smtp.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8592
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:  
;email-smtp.us-east-1.amazonaws.com. IN A  

;; ANSWER SECTION:  
email-smtp.us-east-1.amazonaws.com. 54 IN CNAME ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com.  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 174.129.200.82  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 184.73.219.75  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 107.20.152.208  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 107.20.160.81  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 107.20.203.50  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 107.22.229.233 
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 174.129.6.189  
ses-smtp-prod-335357831.us-east-1.elb.amazonaws.com. 60 IN A 174.129.28.151

J'ai essayé d'envoyer un autre message et il a échoué. Cette fois, je boucle à travers chacun de l'enregistrement des adresses que le SES cname retourné. Je ne pouvais pas se connecter à l'un d'eux. Pendant ce temps, j'ai aussi essayé la connexion à partir de ma machine locale (pas mon instance EC2), et il a très bien fonctionné.

root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.28.151...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.6.189...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.22.229.233...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.20.203.50...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.20.160.81...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.20.152.208...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 184.73.219.75...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.200.82...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.28.151...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.6.189...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.22.229.233...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.20.203.50...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.20.179.13...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 107.20.160.81...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 184.73.219.75...
^C
root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.200.82...
^C

Après une attente d'environ 30 secondes, j'ai essayé à nouveau, cette fois ça a fonctionné.

root@intranet01 sbin# telnet email-smtp.us-east-1.amazonaws.com 25
Trying 174.129.28.151...
Connected to email-smtp.us-east-1.amazonaws.com.
Escape character is '^]'.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-222567251
^C^[
^]

telnet>

Comme je l'ai dit précédemment, j'ai posté une très semblables post sur AWS SES forum. Le poste peut être trouvé ci-dessous.

https://forums.aws.amazon.com/thread.jspa?threadID=97736&tstart=0

Aussi, il semble que je ne suis pas seul, que j'ai trouvé ce post sur le SES forum, on dirait le même problème.

https://forums.aws.amazon.com/thread.jspa?threadID=91260&tstart=0

J'ai pensé qu'il pourrait y avoir une sorte de EC2 SMTP limitation, donc j'ai rempli le "envoi de mail à partir EC2" formulaire de demande, mais il semble idiot de moi depuis que je suis à l'aide d'Amazon service, par opposition à une 3ème partie. Jusqu'à présent, je n'ai pas entendu quoi que ce soit à partir d'Amazon après le remplissage de la forme.

Quelqu'un aurait-il des idées? Merci à l'avance.

50voto

fattastic Points 322

Donc, apparemment, EC2 a ses propres limites. J'ai supposé (à tort) que le fait d'avoir accès production à SES signifierait aussi détendu SMTP limitations de EC2, mais comme ils sont deux choses complètement distinctes de produits, je suppose que ce n'est pas le cas.

Mais comme je l'ai dit dans le dernier paragraphe de mon post, vous pouvez Demander la suppression de l'Envoi des messages a des Limites à ces limites soulevées. Je l'ai fait et le problème s'est arrêté (il leur a fallu près de 5 heures pour obtenir mes limites supprimé).


Mise à jour

L'EC2 limitation est documenté dans la Connexion à l'Amazonie SES SMTP d'Extrémité et en fait limitée à port 25, donc une alternative et une solution immédiate est tout simplement en utilisant le port 587 au lieu de cela (c'est un peu regrettable que plusieurs officiels SES exemples sont en utilisant le port 25 en effet):

Important

Elastic Compute Cloud (EC2) limite le trafic de messagerie sur le port 25 par par défaut. Pour éviter les délais d'attente lors de l'envoi d'email via SMTP point de terminaison de EC2, utiliser un port différent (587 ou 2587) ou remplir un Demande de suppression d'Envoi d'emails les Limites pour enlever la manette des gaz.

Méfiez-vous que cela pourrait être légèrement dépassées ainsi, dans la mesure où à la fois l' AWS Management Console et de l'article Amazon SES SMTP Questions font référence à la plus commune, les autres ports 465 et 587 seulement:

Vous envoyez à Amazon SES d'une instance Amazon EC2 via le port 25 et vous ne pouvez pas atteindre votre Amazon SES limites d'envoi ou vous êtes la réception des temps d'arrêt - Amazon SES EC2 impose des limites d'envoi par défaut l'e-mail envoyé via le port 25 et bloque les connexions sortantes si vous tentative de dépasser ces limites. Pour supprimer ces limites, de soumettre une Demander la suppression de l'Envoi des messages a des Limites. Vous pouvez également vous connecter pour Amazon SES via le port 465 ou le port 587, ni de ce qui est étranglé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X