Ich vermute, dass ich hier etwas Grundlegendes verpasse, aber mit diesem eine Weile ohne Glück gerungen habe.Errno :: ECONNREFUSED (Verbindung abgelehnt - connect (2) für Nil-Port 587): für Rails auf Heroku
Rails 4.2.5
Rubin 2.2.3p173
E-Mails senden Fein auf localhost
Amazon SES (I this stellar guide gefolgt), aber nicht auf einer Produktionsumgebung Heroku. Ich erhalte den Fehler im Titel der Post:
Errno::ECONNREFUSED (Connection refused - connect(2) for nil port 587)
ich den Kern des Problems vermuten, dass das nil
da drin ist, aber ich habe nicht in der Lage gewesen, um herauszufinden, wo es herkommt. Niemand sonst scheint dieses Problem zu haben und selbst Debug-Level-Logs geben mir nichts mehr, mit dem ich arbeiten könnte.
Ich habe Dutzende von Posts wie this gelesen. Aber meine Konfigurationen stimmen mit allen Spezifikationen überein, soweit ich das beurteilen kann.
Jede Hilfe/Empfehlungen würde sehr geschätzt werden.
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
}
Klingt wie 'ENV ['SES_ADDRESS']' ist Null - Sind Sie sicher, dass die Umgebungsvariable gesetzt ist? –
Können Sie den Ausgang dieses Befehls Telnet myappname.herokuapp.com 587 aus Ihrer Produktionsumgebung einfügen – error2007s
Natürlich ... Sie sind 100% richtig @ FrederickCheung. Seit ich neue ENV-Variablen bei Heroku installiert habe, habe ich vergessen, dass ich Figaro benutze und "figaro heroku: set -e production" ausführen muss, um alles zu synchronisieren. Ich bin jetzt golden. Danke für den Vorschlag. Wenn du dich einreichen willst, akzeptiere ich - ansonsten akzeptiere ich alexandresaiz, da es eine ähnliche Beobachtung ist. –