Redmine/Rails email through Gmail SMTP

Jeff Mancuso December 4th, 2008

Here is a bit of help getting Redmine, or any Rails app, to send email over SMTP through an existing Gmail account. It’s quite easy to set up and you gain the usual perks of having everything centralized in a Gmail account. Note: this works with Google Apps for your domain, too.

First you’ll need to install the smtp_tls plugin into your application’s lib directory so you can correctly authenticate. For posterity, I’ve uploaded a copy smtp_tls.rb along with this post.

www@host:~/redmine$ cd lib
www@host:~/redmine/lib$ curl -O http://blog.expandrive.com/wp-content/uploads/2008/12/smtp_tls.rb

Redmine utilizes email.yml to configure ActionMailer. Here’s what ours looks like:

production:
    delivery_method: :smtp
    smtp_settings:
      address: smtp.gmail.com
      port: 587
      domain: gmail.com
      authentication: :login
      user_name: info@expandrive.com
      password: password

Next, in production.rb makre sure to

require 'smtp_tls'

That’s it, you’re good to go.

If you want to set up any old Rails app [using Action Mailer] to send mail via Gmail, add this to production.rb

require 'smtp_tls' 
 
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.default_charset = "utf-8"
 
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => :login,
:user_name => "info@expandrive.com",
:password => "password",
}

Tags: , , , , , ,

  • eater

    Thank you very much. Everything works like it should.

  • http://www.metaxio.com Martin Hall

    I keep getting ‘X An error occurred while sending mail (wrong number of arguments (7 for 6))’

    For the life of me — I cannot figure what it might be….

    Outgoing email settings

    production:
      delivery_method: :smtp
      smtp_settings:
        address: smtp.gmail.com
        port: 587
        domain: gmail.com
        authentication: :login
        user_name: mlwhall
        password: password

    This is what I have in the email.yml

    and I have the loaded the smtp_tls in lib and added require ‘smtp_ls’ to the config/environment/production.rb

    Any thoughts that might help?

  • Jeff Mancuso

    although I’m not sure it’ll help the wrong number of arguments problem you’re seeing, your username should be fully qualified: mlwhall@gmail.com [or whatever it is]

    Do you have any cruft in your YML that would cause it to parse weirdly? It looks like you’re using 4 spaces for indenting at 1 level and 2 at another. I’m not positive about the constraints placed upon YML parsing, but I’d fix that

    If that fails, try deleting the content in email.yml and put everything in production.rb like in the second half of the example – it’s the same thing.

  • http://dancameron.org Dan Cameron

    I really appreciate your work but I’m having a biggest problem right now.

    It’s working but throwing a 404 after every page that sends an email. The log is showing a routing error:http://gist.github.com/44389

    I can’t get this plugin to work either:http://github.com/collectiveidea/action_mailer_optional_tls/tree/master

    Please help. I’m completely stuck right now.

  • http://blag.samandshannon.com Sam Bloomquist

    Thanks for this post. It worked perfectly for me with Redmine 0.8.0 running on Dreamhost under Phusion Passenger.

  • cz9qvh

    Perfect thank you. that worked great.

  • Arkaitz Garro

    This works perfect. Thanks!

  • Tyron

    Thanks man – that worked spot on – much more simplier than other methods out there for Redmine and Gmail functionality.

    Thanks for posting!

  • http://shahjapan.blogspot.com japan shah

    I’m getting error like this, An error occurred while sending mail (wrong number of arguments (3 for 2))

  • http://shahjapan.blogspot.com japan shah

    An error occurred while sending mail (wrong number of arguments (7 for 6))

  • http://shahjapan.blogspot.com japan shah
  • http://huyvq.com Huy Vu

    Thank you for your post. It’s work for me

  • http://www.awm.com.br Henrique Mattos

    It’s not working for me. Can’t realize why. I’m having this return: “wrong number of arguments (3 for 2)” but can’t understand why and where it’s wrong.

  • koko jumbo

    i fight with that configuration for hours after i did all that this guys said, and finally i notice that this two files are not equal, so make sure that this two files are identical:

    • /vendor/plugins/action_mailer_optional_tls/lib/smtp_tls.rb
    • /lib/smtp_tls.rb

    this fixed my problem. (thanks god..)

    koko jumbo.

  • atif

    Hi All, can anyone tell me how i can configure redmine 0.9.4 to recieve emils from POP3 or smtp Thanx

  • Anitha

    Thank you…

    After a number of searches for the smtp_tls.rb and everything else in the world… finally your post got me things rolling!!!

  • Malakias

    Awesome post and great comment about same files smtp_tls.rb!!!

    Thanks

  • http://blog.zfilin.org.ua/ zfilin

    Thank you for your script! Your method better than described here: http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/ Anyway your method works!

  • http://www.cubixws.com Harshit

    Works fantastic! Thanks

  • Humberto Borba

    I have a Ubuntu Server 10.10. I tried to setup my Redmine with Gmail SMTP.

    But I got this error:

    An error occurred while sending mail ({{value}})

    This error appear when I sent an email test on Redmine Adminitration.

    Any ideia? Thank you!

Grab the RSS feed
Follow ExpanDrive on Twitter Follow us on Twitter


Try ExpanDrive

If you’ve heard of SSH then you need ExpanDrive.



Try Strongspace

Awesome SFTP/rsync online storage by ExpanDrive.