[RoR][Sysadmin] ActiveMailer sending via GMail
On the previous Kansai Rails Conference in Asiyagawa somebody asked me about using GMail (smtp+ssl or tls) with Rails ActiveMailer. Didn't find solution until now but 'dza-dza-dzaaaaaaan' (hahaha i'm not so smart, all credits going to entombedvirus ):
Send email with ActionMailer through TLS only SMTP server
- Install msmtp (light SMTP client with support for server profiles)
$ sudo apt-get install msmtp
- Create/edit ~/.msmtprc
account gmail host smtp.gmail.com auth on user <your_account>@gmail.com password <your_password> tls on tls_starttls on from <your_account>@gmail.com maildomain gmail.com account default : gmail
- Stop msmtp complaining about permissions
$ chmod 600 ~/.msmtprc
- Add on the bottom of yourrailsapp/config/environment.rb (and comment another ActionMailer::Base.delivery_method settings if exists) :
ActionMailer::Base.delivery_method = :msmtp
module ActionMailer
class Base
def perform_delivery_msmtp(mail)
IO.popen("/usr/bin/msmtp -t -C /<path_to>/.msmtprc -a gmail --", "w") do
|sm|
sm.puts(mail.encoded.gsub(/\r/, ''))
sm.flush
end
end
end
endDo not forget to fix the exact path to your .msmtprc in the source above.