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: , , , , , ,

16 Responses to “Redmine/Rails email through Gmail SMTP”

  1. eater Says:

    Thank you very much. Everything works like it should.

  2. Martin Hall Says:

    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?

  3. Jeff Mancuso Says:

    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.

  4. Dan Cameron Says:

    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.

  5. Sam Bloomquist Says:

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

  6. cz9qvh Says:

    Perfect thank you. that worked great.

  7. Arkaitz Garro Says:

    This works perfect. Thanks!

  8. Tyron Says:

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

    Thanks for posting!

  9. japan shah Says:

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

  10. japan shah Says:

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

  11. japan shah Says:

    Try

    revert your redmine SVN follow http://github.com/collectiveidea/action_mailer_optional_tls/tree/master

    it works !!

  12. Huy Vu Says:

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

  13. Henrique Mattos Says:

    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.

  14. koko jumbo Says:

    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.

  15. atif Says:

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

  16. Anitha Says:

    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!!!

Leave a Reply

Subscribe:

Add to Google
RSS
Try ExpanDrive

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