2016-07-30 135 views
2

我怀疑我在这里失去了一些基本的东西,但一直没有运气摔跤过一段时间。Errno :: ECONNREFUSED(连接被拒绝 - 连接(2)无端口587):对于Heroku上的Rails

的Rails 4.2.5
红宝石2.2.3p173

电子邮件使用亚马逊SES(我跟着this stellar guide),但不是在Heroku的生产环境上localhost发送罚款。我收到了错误的文章的标题:

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

我怀疑这个问题的核心是在那里nil,但我一直没能揣摩出它来自哪里。没有其他人似乎有这个问题,甚至调试级日志不给我任何更多的工作。

我读过几十个帖子,如this。但据我所知,我的配置符合所有规格。

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

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 
    } 
+1

听起来像'ENV ['SES_ADDRESS']'是零 - 你确定环境变量设置? –

+0

你可以粘贴这个命令的输出telnet myappname.herokuapp.com 587从你的生产环境 – error2007s

+0

当然......你100%正确@FrederickCheung。自从我部署了新的ENV变量到Heroku后,我忘记了我正在使用费加罗,并且需要运行'figaro heroku:set -e production'来同步所有内容。我现在是金。感谢您的建议。如果你想提交我会接受 - 否则我会接受alexandresaiz,因为这是一个类似的观察。 –

回答

1

设置环境变量,请确保您的SES终点是在生产模式下,你应该是好的。

相关问题