ruby-on-rails – 无法使用gmail stmp服务器发送邮件(在话语中)

我正在尝试设置 discourse,这是一个rails3 webapp,但在使用gmail smtp服务器配置smtp时遇到一些问题.

我昨天注册一个新的Gmail帐户,我可以登录浏览器和电子邮件客户端软件.

然后我在config / environments / production.rb文件中配置话语:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address   => "smtp.gmail.com",:port      => "587",:user_name => "smtp4shuzu@gmail.com",:password  => "12345678",:authentication => :plain,:domain => "shuzhu.org",:enable_starttls_auto => true
}

启动用于在后台发送邮件的sidekiq:

nohup bundle exec sidekiq > log/sidekiq.log 2>&1 &

然后在生产模式中开始讨论:

rails server -e production -d

但它不起作用.我可以在sidekiq.log中看到一些错误

2013-03-01T03:06:02Z 30687 TID-qib28 WARN: {“retry”=>true,“queue”=>”default”,“class”=>”Jobs::UserEmail”,“args”=>[{“type”=>”signup”,“user_id”=>42,“email_token”=>”b40a21ece2b14586e346abfd96685975”,“current_site_id”=>”default”}],“jid”=>”558bb6bd5aa36cfc8d3d1e91”,“error_message”=>”Connection refused – connect(2)”,“error_class”=>”Errno::ECONNREFUSED”,“Failed_at”=>2013-03-01 03:06:02 UTC,“retry_count”=>0}
2013-03-01T03:06:02Z 30687 TID-qib28 WARN: Connection refused – connect(2)
2013-03-01T03:06:02Z 30687 TID-qib28 WARN: /home/discourse/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/smtp.rb:540:in initialize'
/home/discourse/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/smtp.rb:540:in
open’
/home/discourse/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/smtp.rb:540:in `tcp_socket’

我尝试过各种smtp设置,但没有一个能够正常工作.

更新:

Per @ Basil的答案,我刚试过:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address   => "smtp.gmail.com",:port      => 587,:user_name => "smtp4shuzu",:authentication => "plain",:enable_starttls_auto => true
}

但它有同样的错误.域shuzu.org是我的网站的域名,我在想我应该将它传递给smtp.现在我删除了它,但仍然无法正常工作.

解决方法

最后,我发现了(愚蠢的)原因.

我应该在生产模式下启动sidekiq:

nohup bundle exec sidekiq -e production > log/sidekiq.log 2>&1 &

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...