Quelle serait la meilleure façon de faire en sorte qu'ActionMailer envoie du courrier via Amazon SES dans Rails 3?
Éditer:
C'est maintenant un joyau:
gem install amazon-ses-mailer
Quelle serait la meilleure façon de faire en sorte qu'ActionMailer envoie du courrier via Amazon SES dans Rails 3?
Éditer:
C'est maintenant un joyau:
gem install amazon-ses-mailer
La configuration de Rails 3.2 pour l'envoi d'e-mails à l'aide d'Amazon Simple Email Service (SES) est facile. Vous n'avez pas besoin d'aucun autre bijou ou monkey patching pour le faire fonctionner.
SES prend en charge à la fois STARTTLS sur SMTP ainsi que le protocole TLS/SSL. La liste suivante montre comment mettre en place des Rails pour STARTTLS avec SES.
Conditions préalables
Si vous exécutez des rails de Mac OS X, vous devrez peut-être configurer OpenSSL pour Ruby correctement avant de vous pouvez utiliser STARTTLS. Si vous êtes à l'aide de Ruby 1.9.3 et RVM, ici, c'est une manière de faire ceci:
rvm pkg install openssl
rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr
Si vous ne le faites pas, il y a une possibilité que Ruby permettra d'erreur lorsque vous essayez d'envoyer un e-mail.
Assurez-vous que vous avez vérifié votre adresse email de l'expéditeur avec AWS. Vous ne pouvez envoyer des e-mails avec une adresse courriel valide en tant qu'expéditeur. Aller à la "Vérifié les Expéditeurs" option dans le menu de gauche dans la console AWS pour SES.
Assurez-vous que vous avez AWS SMTP nom d'utilisateur et le mot de passe pour l'authentification. Allez à "Paramètres SMTP" option dans le menu de gauche dans la console AWS pour SES pour cette série. Vous serez invité à en créer un utilisateur IAM (par défaut: ses-smtp de l'utilisateur) et puis vous verrez le SMTP de l'utilisateur et le mot de passe, qui ressemblent à d'habitude AWS clé et le secret. Notez que l'utilisateur IAM, c'est à dire, ses-smtp de l'utilisateur n'est pas le SMTP de l'utilisateur que vous allez utiliser pour l'authentification.
La Configuration Des Rails
Dans config/développement.rb et config/production.rb, ajoutez la ligne suivante:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "email-smtp.us-east-1.amazonaws.com",
:user_name => "...", # Your SMTP user here.
:password => "...", # Your SMTP password here.
:authentication => :login,
:enable_starttls_auto => true
}
L'envoi d'un e-mail
Ce qu'il est. Maintenant, vous pouvez aller de l'avant et de créer un mailer et commencer à envoyer des e-mails pour le plaisir et le profit!
Créer un exemple de mailer
rails g mailer user_mailer
Dans app/mailer/user_mailer.rb:
class UserMailer < ActionMailer::Base
# Make sure to set this to your verified sender!
default from: "your@verifiedsender.com"
def test(email)
mail(:to => email, :subject => "Hello World!")
end
end
Dans les vues/user_mailer/test.erb:
A quick brown fox jumped over the lazy dog.
Maintenant, lancez la console et de tirer un e-mail de test:
rails c
Loading development environment (Rails 3.2.1)
1.9.3p125 :001 > UserMailer.test("your@email.com").deliver
J'ai également un petit bijou qui prend en charge l'envoi d'e-mails via SES à partir de Rails 3:
https://github.com/drewblas/aws-ses
Il possède également toutes les API pour vérifier / gérer les adresses e-mail
Après avoir fouillé un peu, j'ai fini par faire une classe simple pour le faire.
https://github.com/abronte/Amazon-SES-Mailer
Dans les rails, vous pouvez obtenir le message électronique codé:
m = UserMailer.welcome.encoded
AmazonSES.new.deliver(m)
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.