2016-07-30 103 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終點是在生產模式下,你應該是好的。

相關問題