У меня есть приложение Ruby on Rails (v4.1.5), работающее на OpenShift от RedHat. Я был в процессе перехода от Mandrill к SendGrid. В процессе развития я смог добавить следующее в мой development.rb конфигурационный файл:Транзакционная электронная почта не отправлена с сервера rails в производство на OpenShift, но отлично работает в разработке
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => 587,
:authentication => "plain",
:domain => ENV["DOMAIN_NAME"],
:enable_starttls_auto => true,
:user_name => ENV["SENDGRID_USERNAME"],
:password => ENV["SENDGRID_PASSWORD"]
}
И я мог продолжать использовать ActionMailer же, как я делал раньше. Я тестировал его локально и получал электронные письма, а заголовки показывали, что они пришли через sendgrid.
Затем я добавил этот же код в production.rb и развернулся в OpenShift. Я добавил новые переменные среды имени пользователя и пароля SENDGRID, используемые в приведенном выше коде, и подтвердил, что они правильно установлены на OpenShift.
Но когда я его протестировал, в файле журнала говорится, что он отправил электронное письмо на правильный адрес электронной почты, но он не отображается на моей панели управления SendGrid, и я не получил электронное письмо.
Кто-нибудь знает какие-либо другие файлы журналов на OpenShift, которые могут отображать больше информации? Я только посмотрел на app-root/runtime/repo/log/production.log.
Я попытался удалить поле enable_starttls_auto выше, но ничего не изменилось.
Как я могу отладить эту проблему? Я не знаю, есть ли это на стороне OpenShift или SendGrid.
Убедитесь, что все необходимые порты открыты в производственной среде. – bwest
Номера портов SendGrid и Mandrill одинаковы (587). Он работал с Мандриллом, ничего не меняя. –
Я попытался использовать SendInBlue вместо SendGrid. Снова он работал локально в разработке, но не работает в OpenShift. Поэтому я думаю, что это проблема. –