41 votes

Comment envoyer un courriel via smtp avec la gemme mail de Ruby ?

J'utilise le mail gem pour Ruby https://github.com/mikel/mail

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

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

96voto

Simone Carletti Points 77653

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

Pour effectuer un envoi via GMail, vous devez configurer l'option Mail::SMTP pour avoir les valeurs correctes, donc pour 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 courrier qui sont créés à partir de maintenant. Astuce d'utilisateur avancé, vous n'êtes pas obligé d'utiliser la méthode globale, vous pouvez définir la méthode delivery_method directement sur chaque objet de courrier individuel. Mail::Message et avoir différents agents de livraison par courriel, ce qui est utile si vous construisez une application qui a plusieurs utilisateurs avec différents serveurs gérant leur courriel.

Mail.deliver do
       to 'mikel@test.lindsaar.net'
     from 'ada@test.lindsaar.net'
  subject 'testing sendmail'
     body 'testing sendmail'
end

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