Configuring Rails To Use Gmail's SMTP Server uses Google Apps For Your Domain, and all email flows throw Google’s servers. Unfortunately, Rails 1.2.2 can’t send via 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.

23 thoughts on “Configuring Rails To Use Gmail's SMTP Server”

  1. 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. action_mailer_tls seems to work with the same config I used with Rails 1.1.6

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


  4. 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.

  5. @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.

  6. /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.

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

  8. 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.


Leave a Reply

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