Ho visto molti articoli sul web che spiegano come inviare un’email con un account Google da un’applicazione Ruby On Rails.
Tuttavia credo ci siano in rete diversi esempi non funzionanti o incompleti
Ecco perchè ho deciso di condividere una soluzione funzionante che ho usato in diversi progetti.
Il problema principale con Gmail o comunque con un indirizzo legato a Google Apps è che richiede di utilizzare una connessione ssl.
Fortunatamente, come spesso accade con Ruby On Rails la soluzione è piuttosto semplice.
E’ sufficiente installare la gem tlsmail con il comando:
gem install tlsmail
Fatto questo basta configurare i parametri per la casella email desiderata ad esempio nell’initializer mail.rb o dove lo si ritiene più opportuno, facendo attenzione ad aggiungere la riga
require 'tlsmail'
e ad impostare il parametro :tls => true.
Ecco lo snippet completo:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#Configure mail ony for production mode
if RAILS_ENV == 'production'
require 'tlsmail'
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.default_charset = "utf-8"
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:domain => "your-domain.com",
:address => 'smtp.gmail.com',
:port => 587,
:tls => true,
:authentication => :plain,
:user_name => 'address@your-domain.com',
:password => 'your-password'
}
end
Come vedete, utilizzando la gem tlsmail, configurare una casella Google mail diventa molto semplice.