Configuring Rails To Use Gmail's SMTP Server

OpenRain.com uses Google Apps For Your Domain, and all email flows throw Google’s servers. Unfortunately, Rails 1.2.2 can’t send via smtp.google.com out of the box. As originally pointed out by Anatol Pomozov there is a solution. Here’s the simple version tested with Rails 1.2.2.

  1. Save this code as lib/smtp_tls.rb within your rails app.
  2. Add this code to config/environment.rb.
  3. Use ActionMailer as normal.

Updated 2008.01.04: The original link was b0rken, so I pastied the code instead.

Comments

23 responses to “Configuring Rails To Use Gmail's SMTP Server”

  1. Chris Avatar

    Just a note: if you’re copying and pasting the code from this page, know that the single- and double-quotes are being pasted as non-parsable versions. You’ll need to re-type those quotes to avoid read errors.

  2. […] PrestonLee.com » Configuring Rails To Use Gmail’s SMTP Server […]

  3. Al Brown Avatar
    Al Brown

    action_mailer_tls seems to work with the same config I used with Rails 1.1.6

  4. Paul Avatar
    Paul

    The links to the code seem to be broken. Is the code available anywhere else?

    Thanks

  5. preston.lee Avatar

    The links seem to be working fine this morning. Maybe he just had some downtime yesterday.

  6. Joe Avatar

    The website was down for me too.
    I searched google for the link:
    http://blog.pomozov.info/posts/how-to-send-actionmailer-mails-to-gmailcom.html
    and was able to get the code via the google cache.

  7. […] Enjoy! Thanks to Preston Lee for pointing this out. And, of course, Anatol’s smtp_tls library can also be used directly from any other Ruby application if you like! […]

  8. SandyTheFire Avatar
    SandyTheFire

    Guyz, I am trying to send multiple mails so i have to authenticate multiple times which consumes a hell lotta time, can anyone suggest a way.

  9. preston.lee Avatar

    @SandyTheFire

    I’m not sure how to best deal with that within Rails, but you could use your own SMTP server instead. If your sending a ton of emails you may need to do that anyway to avoid getting slapped by Google.

  10. […] Note: I previously wrote about how to do this for Rails 1.2.x here. […]

  11. Philippe Rathe Avatar

    Gmail will limit you to send 500 emails per day.
    You won’t be able to change the “from” parameter.

    Perfect for personal use.

  12. Philippe Rathe Avatar

    /Users/prat/lib/rubygems/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:266:in `load_missing_constant’: uninitialized constant ActionMailer (NameError)

    Got this Error when starting mongrel.

  13. […] 不过后来在一篇 Blog 的评论中看到说 Gmail 限制一天只能发 500 封邮件,Google 了一下貌似确有此事,还没有亲自证实。 […]

  14. william Avatar

    gracias por tu instructivo, por el cual logre lo que necesitaba.

    saludos desde colombia

  15. liquidsun Avatar
    liquidsun

    For the ‘load_missing_constant’ error, here is the fix…
    Put
    require ‘smtp_tls’
    require ‘action_mailer’
    into environment.rb.

  16. stephen Avatar

    Alright folks,
    great tutorial – it came in very handy today.

    I would just like to add, for anyone who cares, that the code you need to insert into environment.rb, needs to go AFTER everything else in the file. i.e. after the ‘end’ statement.

    anyway, thanks a lot for this, I really needed it.

    Cheers

  17. […] account you need to do something special in your rails app. I highly recommend you have a look at Preston Lee’s blog post for […]

  18. Pat Douglas Avatar
    Pat Douglas

    Thank you!!!!!

Leave a Reply

Your email address will not be published. Required fields are marked *