J'essaie de passer notre application Rails à utiliser le service SES d'Amazon pour l'envoi par courrier électronique. L'application utilise Ruby 1.8.6 et Rails 2.2.2.Amazon SES: Dit qu'il est envoyé des e-mails de test, mais ils n'arrivent pas
SES nécessite des e-mails à utiliser le protocole TLS (cryptage de style ssl), qui ne sont pas pris en charge dans Ruby 1.8.6, mais je l'ai trouvé un petit bijou à patcher, ici: https://github.com/seattlerb/smtp_tls
Je suis test l'envoi d'un e-mail de ma console, comme ceci:
options = {
:address => "email-smtp.eu-west-1.amazonaws.com",
:port => 587,
:user_name => "my-ses-smtp-username",
:password => "my-ses-smtp-password",
:authentication => :login
}
smtp = Net::SMTP.new options[:address], options[:port]
smtp.enable_starttls
smtp.start Socket.gethostname, options[:user_name], options[:password], options[:authentication] do |server|
server.send_message "subject: hello\nblah blah\n\n", "[email protected]", "[email protected]"
end
« [email protected] » et « [email protected] » ont tous deux été vérifiées sur SES, et « ourdomain.com » est là notre domaine enregistré .
Je suis en mode Sandbox sur SES et j'ai envoyé des e-mails aux adresses vérifiées en utilisant leur propre console de test par e-mail.
La page de statistiques sur SES répertorie un e-mail envoyé, bien que les graphes de chronologie ci-dessous indiquent en réalité qu'il y a eu 6 livraisons et un report. De toute façon je m'attendrais à voir quelque chose venir, mais rien n'a.
J'ai mis une exploitation forestière dans Net :: SMTP pour voir ce qui se passe à la demande ci-dessus, et il ne semble OK, de ma connaissance limitée:
net/smtp.rb:672:in `check_response': res = "220 email-smtp.amazonaws.com ESMTP SimpleEmailService-2007935501 vtiBU5pQUlPZ3bAZIaZl\n", allow_continue = false
net/smtp.rb:648:in `getok': fmt = "EHLO %s"; args = ["max-thinkpad-linux"]
net/smtp.rb:672:in `check_response': res = "250-email-smtp.amazonaws.com\n250-8BITMIME\n250-SIZE 10485760\n250-STARTTLS\n250-AUTH PLAIN LOGIN\n250 Ok\n", allow_continue = false
net/smtp.rb:648:in `getok': fmt = "STARTTLS"; args = []
net/smtp.rb:672:in `check_response': res = "220 Ready to start TLS\n", allow_continue = false
net/smtp.rb:648:in `getok': fmt = "EHLO %s"; args = ["max-thinkpad-linux"]
net/smtp.rb:672:in `check_response': res = "250-email-smtp.amazonaws.com\n250-8BITMIME\n250-SIZE 10485760\n250-STARTTLS\n250-AUTH PLAIN LOGIN\n250 Ok\n", allow_continue = false
net/smtp.rb:672:in `check_response': res = "334 VXNlcm5hbWU6\n", allow_continue = true
net/smtp.rb:672:in `check_response': res = "334 UGFzc3dvcmQ6\n", allow_continue = true
net/smtp.rb:648:in `getok': fmt = "MAIL FROM:<%s>"; args = ["[email protected]"]
net/smtp.rb:672:in `check_response': res = "250 Ok\n", allow_continue = false
net/smtp.rb:648:in `getok': fmt = "RCPT TO:<%s>"; args = ["[email protected]"]
net/smtp.rb:672:in `check_response': res = "250 Ok\n", allow_continue = false
net/smtp.rb:672:in `check_response': res = "354 End data with <CR><LF>.<CR><LF>\n", allow_continue = true
net/smtp.rb:672:in `check_response': res = "250 Ok 0102015bd896c863-02370584-903e-4c64-b5a0-5c5c5dcc28c6-000000\n", allow_continue = false
net/smtp.rb:648:in `getok': fmt = "QUIT"; args = []
net/smtp.rb:672:in `check_response': res = "221 Bye\n", allow_continue = false
Avez-vous réussi l'authentification? Je ne vois pas une section d'authentification nettoyée dans la sortie. https://en.wikipedia.org/wiki/SMTP_Authentication – ddubs
L'auth fonctionne - si je change le mot de passe, je reçois un message d'échec. Peut-être parce que l'option d'authentification est définie sur "connexion", elle est différente de ce que vous attendiez? –