Errno :: ECONNREFUSED(连接被拒绝 – 连接(2)为nil端口587):对于Heroku上的Rails

我怀疑我在这里遗漏了一些基本的东西,但是在没有运气的情况下与这一个人摔跤了一段时间。

Rails 4.2.5
Ruby 2.2.3p173

电子邮件使用Amazon SES在localhost上发送正常(我遵循了这个恒星指南 ),但没有在Heroku生产环境中发送。 我收到post标题中的错误:

Errno::ECONNREFUSED (Connection refused - connect(2) for nil port 587)

我怀疑问题的核心是那里的nil ,但我无法弄清楚它的来源。 没有其他人似乎有这个问题,甚至调试级别日志也没有给我任何更多的东西。

我已经阅读了几十个这样的post。 但据我所知,我的配置符合所有规格。

任何帮助/建议将不胜感激。

development.rb

 # Devise config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } # Configure mailer config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default :charset => "utf-8" config.action_mailer.smtp_settings = { :address => ENV['SES_ADDRESS'], :port => 587, :enable_starttls_auto => true, :user_name => ENV['SES_ACCESS_KEY_ID'], :password => ENV['SES_SECRET'], :authentication => :login } 

production.rb

  # Devise config.action_mailer.default_url_options = { :host => 'myappname.herokuapp.com'} # Configure mailer config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default :charset => "utf-8" config.action_mailer.smtp_settings = { :address => ENV['SES_ADDRESS'], :port => 587, :enable_starttls_auto => true, :user_name => ENV['SES_ACCESS_KEY_ID'], :password => ENV['SES_SECRET'], :authentication => :login } 

设置您的环境变量,确保您的SES端点处于生产模式,您应该是好的。