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 :

<typo:code lang=”sh”> ./script/plugin install http://github.com/collectiveidea/actionmaileroptional_tls </typo:code>

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 :

<typo:code lang=’ruby’> 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 </typo:code>

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

<typo:code lang=’ruby’> if RAILSENV != ‘test’ ActionMailer::Base.smtpsettings = {

:tls => true,
:address => "smtp.gmail.com",
:port => "587",
:domain => "YOURDOMAIN",
:authentication => :plain,
:user_name => "GOOGLEUSERNAME",
:password => "GOOGLEPASSWORD"

} end </typo:code>

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.