Le Rayon UX

La radiographie du Web en temps presque réel / thème en chantier (je m'appelle Teuse)

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.

  • Par Thierry Stiegler 27/04/2010 at 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.


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