我怀疑我错过了一些基本的东西,但一直在与这个角力了一段时间,没有运气。
钢轨4.2.5
红宝石2.2.3p173
电子邮件在使用amazon ses的localhost上发送很好(我关注了this stellar guide),但在heroku的生产环境上没有。我收到邮件标题中的错误:
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端点处于生产模式,并且您应该表现良好。

关于ruby-on-rails - Errno::ECONNREFUSED(连接被拒绝-无端口587的connect(2)):用于Heroku上的Rails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38677793/

10-11 07:19