Envoyer des mails via Gmail ou SMTP et TLS avec une application Ruby On Rails

Par défaut, Ruby On Rails n’a pas la possibilité d’envoyer des emails via un serveur SMTP utilisant TLS comme celui de Gmail. Heureusement, ce n’est pas très difficile à mettre en place, et je vous propose donc de le faire pas à pas dans votre application Rails d’une part, et sur Typo, le blogware en Ruby on Rails d’autre part.

Premièrement, installez le plugin ActionMail Optional TLS plugin. Celui-ci va étendre la classe ActionMailer afin d’ajouter le support de TLS. Depuis le répertoire de votre application Rails, lancez en ligne de commande :

./script/plugin install http://github.com/collectiveidea/action_mailer_optional_tls

Jusque là, rien de bien compliqué.

Maintenant, éditez votre fichier config/environment.rb.

S’il contient déjà une directive ActionMailer::Base.smtp_settings, supprimez la.

Si vous utilisez Typo, supprimez le bloc de code suivant :

if RAILS_ENV != 'test'
  begin
    mail_settings = YAML.load(File.read("#{RAILS_ROOT}/config/mail.yml"))

    ActionMailer::Base.delivery_method = mail_settings['method']
    ActionMailer::Base.server_settings = mail_settings['settings']
  rescue
    # Fall back to using sendmail by default
    ActionMailer::Base.delivery_method = :sendmail
  end
end

À la fin de votre fichier config/environment.rb, ajoutez le code suivant :

if RAILS_ENV != 'test'
  ActionMailer::Base.smtp_settings = {
    :tls => true,
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "YOURDOMAIN",
    :authentication => :plain,
    :user_name => "GOOGLEUSERNAME",
    :password => "GOOGLEPASSWORD"
  }
end

Servez-vous une vodka à ma santé – et n’hésitez pas à m’en offrir une bouteille – redémarrez votre application Rails, et ayez le plaisir de recevoir des emails depuis Gmail, ou tout autre SMTP utilisant TLS.

Publié le 16 avril 2010 à 21h20 Publié sous et Labels smtp, tls, mail, gmail, ruby, rails, vodka, rubyonrails

À propos

Frédéric de Villamil

Je m'appelle Frédéric de Villamil, et quand je ne déploie pas ma mauvaise humeur et ma mauvaise foi sur le Web, je suis un super héros chargé de sauver le monde. Vous pouvez me suivre sur Twitter.

  1. Thierry Stiegler le 27 avril 2010 à 09h07

    Petite note à savoir, Gmail limite l’envoie par compte à 500 mails / jours et 2000 pour les comptes premium.

    Si ça peut éviter à quelques un des petits tracas ;)

    Par contre le luxe extrême c’est qu’on retrouve les mails envoyés depuis l’application dans ses courriers envoyés.

Réagir à Envoyer des mails via Gmail ou SMTP et TLS avec une application Ruby On Rails

Afin de maintenir le niveau global de ce site, les commentaires font l'objet d'une politique de modération qualitative basée sur des critères non écrits et totalement subjectifs, donc injustes.

Les commentaires écrits en langage SMS, inutiles, déplacés, injurieux ou relevant du spam seront systématiquement supprimés sans avertissement préalable.

Les trackbacks sont fermés pour cause de spam.