我正在尝试设置 discourse ,它是一个 rails3 webapp,但是在使用 gmail smtp 服务器配置 smtp 时遇到了一些问题。
我昨天注册了一个新的gmail帐户,我可以登录浏览器和电子邮件客户端软件。
然后我在文件 config/environments/production.rb
中配置 discourse:
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 设置,但没有一个有效。
更新 :
根据@Basil 的回答,我刚刚尝试过:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => "smtp4shuzu",
:password => "12345678",
:authentication => "plain",
:enable_starttls_auto => true
}
但它有同样的错误。域
shuzu.org
是我网站的域,我想我应该将它传递给 smtp。现在我删除了它,但仍然无法正常工作。
最佳答案
终于,我找到了(愚蠢的)原因。
我应该开始 sidekiq
在生产模式下:
nohup bundle exec sidekiq -e production > log/sidekiq.log 2>&1 &
关于ruby-on-rails - 无法使用 gmail smtp 服务器发送邮件(在讨论中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15149942/