Я подозреваю, что мне не хватает чего-то основного здесь, но боролся с этим на какое-то время, не повезло.Errno :: ECONNREFUSED (соединение отклонено - подключение (2) для порта nil 587): для Rails на Heroku
Rails 4.2.5
Рубин 2.2.3p173
Письмо отправляет штраф на localhost
с помощью Amazon SES (я последовал 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
}
Звучит как 'ENV ['SES_ADDRESS']' is nil - вы уверены, что задана переменная окружения? –
Можете ли вы наклеить эту команду telnet myappname.herokuapp.com 587 из вашей производственной среды – error2007s
Конечно ... вы на 100% правы @FrederickCheung. Задолго до того, как я развернул новые переменные ENV для Heroku, я забыл, что я использовал Фигаро, и мне нужно было запустить 'figaro heroku: set -e production', чтобы синхронизировать все. Сейчас я золотой. Спасибо за предложение. Если вы хотите представить, я соглашусь - иначе я соглашусь с alexandresaiz, так как это аналогичное наблюдение. –