Я не уверен, что ваша проблема такая же, как у меня, но я только что понял, как заставить SendGrid работать, потратив на это полдня.Отказ от ответственности: я ОЧЕНЬ новичок в RoR - только что начал играть с простыми приложениями два-три дня назад.Казалось, моя проблема в том, с чем может столкнуться только новичок ...
В любом случае, без лишних слов, вот что случилось.Я добавил рекомендуемые строки в environment.rb:
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:user_name => "your_username",
:password => "your_password",
:domain => "yourdomain.com",
:address => "smtp.sendgrid.net",
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
Затем я попытался отправить электронное письмо и получил странное поведение:
- В журнале разработки сказано, что оно было отправлено
- Ну, SendGrid даже не пытался отправить его
- Когда я пытался зайти в "консоль rails", я получил сообщение "неопределенная локальная переменная или метод" config "для main: Object(NameError) "
Оказалось, что я должен заключить конфиг. * В следующее:
YourApplicationName::Application.configure do
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
end
После этого все работало как по волшебству.Надеюсь, это поможет, если не вы, какой-нибудь другой несчастный новичок, по крайней мере ...
РЕДАКТИРОВАТЬ:
Ну, я говорил слишком рано.С вышеуказанными изменениями я могу отправлять и получать электронную почту ТОЛЬКО при вызове Emailer с консоли rails.Если я звоню из приложения, в журнале разработки говорится, что электронное письмо отправлено, но я его не получаю ... В чем разница между консольной средой и приложением?Обратите внимание, что когда я следую инструкциям postfix на SendGrid и запускаю postfix, электронное письмо будет отправлено из приложения.
Если вы нашли ответ на свою проблему, отправьте его здесь ...