Ruby on rails 3 Rails 3 ActionMailer谷歌应用程序:超时::错误

Ruby on rails 3 Rails 3 ActionMailer谷歌应用程序:超时::错误,ruby-on-rails-3,email,gmail,actionmailer,Ruby On Rails 3,Email,Gmail,Actionmailer,我花了太多的时间试图解决这个问题。我看了Railscast,Rails官方指南,很多博客文章,但都没有帮助 我正在尝试使用ActionMailer 2.2.5通过我的谷歌应用程序帐户从我的Rails 3应用程序发送电子邮件。我验证了用户名和密码。我可以在控制台上看到要发送的消息。我从控制器中的deliver调用中收到一个超时::错误 有人能解释一下吗 代码如下: # config/environments/development.rb config.action_mailer.raise_del

我花了太多的时间试图解决这个问题。我看了Railscast,Rails官方指南,很多博客文章,但都没有帮助

我正在尝试使用ActionMailer 2.2.5通过我的谷歌应用程序帐户从我的Rails 3应用程序发送电子邮件。我验证了用户名和密码。我可以在控制台上看到要发送的消息。我从控制器中的deliver调用中收到一个超时::错误

有人能解释一下吗

代码如下:

# config/environments/development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :enable_starttls_auto => true,
  :tls => true,
  :address => 'smtp.gmail.com',
  :port => "587",
  :authentication => :plain,                                                                                                                     
  :domain => 'test.com',
  :user_name => 'user@test.com',
  :password => 'mypass'
}

# app/mailers/test_mailer.rb
class PostMailer < ActionMailer::Base
  default :from => "no-reply@test.com"

 def activate_email( post )
   @post = post
   mail( :to => post.email,
         :subject => "Testing" )
   end
 end

# app/controllers/test_controller.rb
class TestController < ApplicationController
  def create
    @post = Post.new( params[:post] )
    TestMailer.activate_email( @post ).deliver
  end
end
#config/environments/development.rb
config.action\u mailer.raise\u delivery\u errors=true
config.action\u mailer.delivery\u method=:smtp
config.action\u mailer.smtp\u设置={
:enable_starttls_auto=>true,
:tls=>true,
:address=>'smtp.gmail.com',
:port=>“587”,
:身份验证=>:普通,
:domain=>'test.com',
:user_name=>'user@test.com',
:password=>'mypass'
}
#app/mailers/test_mailer.rb
类PostMailer“否-reply@test.com"
def激活电子邮件(post)
@职位=职位
邮件(:to=>post.email,
:主题=>“测试”)
结束
结束
#app/controllers/test_controller.rb
类TestController
我想尝试两件事。首先,将端口设置为数字而不是字符串:

:port => 587
此外,在我的代码中,actionmailer配置之前有以下行:

Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
您是否有理由在rails 3中使用旧版本的actionmailer?我建议使用与rails版本相对应的actionmailer版本


希望这能有所帮助。

谢谢你的建议。原来我是在一个愚蠢的防火墙后面,现在一切都正常了。很高兴听到你明白了!