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.

Perry the Platypus wants you to subscribe now! Even if you don't visit my site on a regular basis, you can get the latest posts delivered to you for free via Email: