Errno :: ECONNREFUSED(连接被拒绝 - 连接(2)无端口587):对于Heroku上的Rails
问题描述:
我怀疑我在这里失去了一些基本的东西,但一直没有运气摔跤过一段时间。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
}
答
设置环境变量,请确保您的SES终点是在生产模式下,你应该是好的。
听起来像'ENV ['SES_ADDRESS']'是零 - 你确定环境变量设置? –
你可以粘贴这个命令的输出telnet myappname.herokuapp.com 587从你的生产环境 – error2007s
当然......你100%正确@FrederickCheung。自从我部署了新的ENV变量到Heroku后,我忘记了我正在使用费加罗,并且需要运行'figaro heroku:set -e production'来同步所有内容。我现在是金。感谢您的建议。如果你想提交我会接受 - 否则我会接受alexandresaiz,因为这是一个类似的观察。 –