web-dev-qa-db-fra.com

Comment envoyer des e-mails via smtp avec Ruby mail gem?

J'utilise la gemme mail pour Ruby https://github.com/mikel/mail

Comment envoyer un e-mail via un serveur smtp? Comment spécifier l'adresse et le port? Et quels paramètres dois-je utiliser pour Gmail?

Le README sur github ne donne que des exemples d'envoi par un serveur local.

41
Colonel Panic

De http://lindsaar.net/2010/3/15/how_to_use_mail_and_actionmailer_3_with_gmail_smtp

Pour envoyer via GMail, vous devez configurer le Mail::SMTP classe pour avoir les valeurs correctes. Pour l'essayer, ouvrez IRB et tapez ce qui suit:

require 'mail'

options = { :address              => "smtp.gmail.com",
            :port                 => 587,
            :domain               => 'your.Host.name',
            :user_name            => '<username>',
            :password             => '<password>',
            :authentication       => 'plain',
            :enable_starttls_auto => true  }



Mail.defaults do
  delivery_method :smtp, options
end

Le dernier bloc appelle Mail.defaults qui nous permet de définir la méthode de livraison globale pour tous les objets de messagerie qui seront créés à partir de maintenant. Conseil d'expert, vous n'avez pas besoin d'utiliser la méthode globale, vous pouvez définir la méthode de livraison directement sur n'importe quel individu Mail::Message objet et avoir différents agents de livraison par e-mail, ceci est utile si vous créez une application qui a plusieurs utilisateurs avec différents serveurs gérant leur e-mail.

Mail.deliver do
       to '[email protected]'
     from '[email protected]'
  subject 'testing sendmail'
     body 'testing sendmail'
end
96
Simone Carletti