2017-08-24 184 views
0

我們一直在使用我們的Rails應用程序發送郵件服務發送郵件給我們的用戶。我們在Heroku服務器上託管了我們的應用,但只要Rails嘗試向我們的用戶發送電子郵件,就會出現內部錯誤。郵件不通過發送郵件發送服務

我看着Heroku的日誌和錯誤是

完成500內部服務器錯誤在63毫秒(ActiveRecord的: 11.1ms)2017-08-24T11:28:03.914063 + 00:00應用程式[幅。 1]:errno的:: ECONNREFUSED(拒絕連接 - 連接(2)零端口25):

在production.rb

config.action_mailer.delivery_method = :smtp 

config.action_mailer.perform_deliveries = true 

config.action_mailer.smtp_settings = { 
    :user_name => ENV['SENDGRID_USERNAME'], 
    :password => ENV['SENDGRID_PASSWORD'], 
    :domain => ENV['DOMAIN'], 
    :address => 'smtp.sendgrid.net', 
    :port => 587, 
    :authentication => :plain, 
    :enable_starttls_auto => true 
} 

我們已經用SendGrid heroku服務器上的附加組件,因此ENV設置正常。 domain: ENV['DOMAIN']指向ENV上的域設置變量,因爲該域在登臺服務器和生產服務器上會有所不同。

回答

0

您顯示的連接拒絕錯誤是端口25,這是默認的SMTP端口。

這似乎是你的配置沒有被使用。你確定你在生產環境中運行(而不是說開發),並且這些設置沒有被任何其他配置文件或每個電子郵件的基礎覆蓋?

如果找不到問題,使用Rails控制檯手動發送電子郵件並檢查其所有配置可能會很有用。