Using encrypted connection with ActionMailer

Hello Folks,

I am trying to use Gmail to send out test emails from my dev machine.
I have the following in my environment.rb

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  :address => "smtp.gmail.com",
  :port => 465,
  :domain => "mydomain.com",
  :authentication => :login,
  :user_name => "myloginid",
  :password => "mypassword"
}

I can see in my log file that the email is being prepped for sending.
However after a little while I get a timeout error as below. My
Outlook settings for email have the flag checked for "This server
requires an encrypted connection (SSL)". Do I need to set something in
my smtp_settings? I also see some error about `method_missing' in
action_mailer/base.rb in the error below but not sure what that is
about.

Anything else I need to do to get this to work?

Thanks for your help.
Sanjay.

c:/ruby/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill'
c:/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout'
c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
c:/ruby/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
c:/ruby/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
c:/ruby/lib/ruby/1.8/net/protocol.rb:126:in `readline'
c:/ruby/lib/ruby/1.8/net/smtp.rb:664:in `recv_response'
c:/ruby/lib/ruby/1.8/net/smtp.rb:396:in `do_start'
c:/ruby/lib/ruby/1.8/net/smtp.rb:686:in `critical'
c:/ruby/lib/ruby/1.8/net/smtp.rb:396:in `do_start'
c:/ruby/lib/ruby/1.8/net/smtp.rb:378:in `start'
c:/ruby/lib/ruby/1.8/net/smtp.rb:316:in `start'
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.3/lib/action_mailer/
base.rb:565:in `perform_delivery_smtp'
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.3/lib/action_mailer/
base.rb:451:in `send'
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.3/lib/action_mailer/
base.rb:451:in `deliver!'
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.3/lib/action_mailer/
base.rb:333:in `method_missing'
#{RAILS_ROOT}/app/controllers/email_controller.rb:9:in `remind'

Hi skt,

I'm having the same problem. As I found, google uses TSL (SSL) sou
you'll need to use this plugin (http://www.railslodge.com/plugins/449-
actionmailer-tls). I think it patches ruby NET:SMTP. The link for it
appears to be dead so I put it in http://www.yamaa.com.br/action_mailer_optional_tls.zip.
Just unzip it in vendors\plugins

Unfortunatelly, I tried this plugin and it didn't work for me, but you
should try.
In this link (http://www.depixelate.com/2007/2/2/rails-and-google-apps-
integration), you'll find another action, using a intermediary smtp
server.

When using another e-mail without SSL, the e-mail was sent without
problems.

With the plugin maybe you should try changing your config:
  :authentication => :login, to :authentication => :plain,

If it works for you, please let me know.

Hello again,

Now it's working! I even found another way.

First change your port from '465' to '587' (I was using 465 also, and
it didnt work)

So, if you use the action_mailer_optional_tls plugin your config
should be:

ActionMailer::Base.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'gmail.com',
:authentication => :plain,
:user_name => 'name@gmail.com', # i think it should work without the
domal
:password => 'pass',
:tls => true
}

The other option is using the tlsmail gem (It also worked for me):

http://www.wanlord.com/articles/2007/11/29/sending-email-using-actionmailer-and-gmail

The last option I read about was changing ryby 1.8.x smtp.rb for ruby
1.9 smtp.rb (which supports tsl). That didn't worked for me, and I
think isn't a good idea.

Bye

Thanks Hugo. I didn't check this thread after a few days thinking no
one was going to reply. Appreciate the info. I too figured out that
using a different port and an smtp_tls file I got from a site helped
make it work though it is rather slow.

Thanks for your feedback - in case you happen to look at this thread
again.

-S