Как решить ошибку SMTPAuthentication / приложение Ruby on Rails, Devise, SendGrid, размещенное на Heroku

Доброго времени суток, ребята, я работаю над приложением rails, которое использует devise для отправки электронных писем с подтверждением зарегистрированным пользователям. Приложение правильно реагирует на среду разработки, и почту может перехватывать mailcatcher. После нажатия на heroku мои журналы обнаруживают ошибку SMTPAuthentication, которая приводит к ошибке сервера 500 каждый раз, когда пользователь регистрируется. Журналы также показывают, что сообщение отправляется до появления ошибки.

2020-02-23T16:04:03.373626+00:00 app[web.1]: 
2020-02-23T16:04:03.373627+00:00 app[web.1]: <p>You can confirm your account email through the link below:</p>
2020-02-23T16:04:03.373627+00:00 app[web.1]: 
2020-02-23T16:04:03.373628+00:00 app[web.1]: <p><a href="https://own-your-life-campaign.herokuapp.com//users/confirmation?confirmation_token=dsbs-bckkBo-qTcuoNLa">Confirm my account</a></p>
2020-02-23T16:04:03.373629+00:00 app[web.1]: 
2020-02-23T16:04:03.373629+00:00 app[web.1]: [12fef5ae-b267-4f98-a4e9-8dd25b6b077b] Completed 500 Internal Server Error in 152ms (ActiveRecord: 5.4ms)
2020-02-23T16:04:03.373630+00:00 app[web.1]: [12fef5ae-b267-4f98-a4e9-8dd25b6b077b]
2020-02-23T16:04:03.373630+00:00 app[web.1]: [12fef5ae-b267-4f98-a4e9-8dd25b6b077b] Net::SMTPAuthenticationError (530-5.7.0 Authentication Required. Learn more at
2020-02-23T16:04:03.373631+00:00 app[web.1]: ):

Вот моя конфигурация SMTP почтового сервера для моего файла environment/production.rb.

# ActionMailer Config
  config.action_mailer.default_url_options = { 
    :host => 'https://own-your-life-campaign.herokuapp.com/'
  }

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true

  ActionMailer::Base.smtp_settings = {
   :user_name => ENV['SENDGRID_USERNAME'],
   :password => ENV['SENDGRID_PASSWORD'],
   :domain => 'own-your-life-campaign.herokuapp.com',
   :address => 'smtp.sendgrid.net',
   :port => 587,
   :authentication => :plain,
   :enable_starttls_auto => true
  }

Я также добавил аддоны SendGrid на heroku и сгенерировал имя пользователя и пароль, вот образец моих переменных среды на heroku. Я опускаю свою базу секретных ключей и ключ SENDGRID_API по соображениям безопасности.

SECRET_KEY_BASE:          ------------------------------------------------------------------
SENDGRID_API_KEY:         -------------------------------------------------------------------
SENDGRID_PASSWORD:        wj7oujsd4159
SENDGRID_USERNAME:        app162627210@heroku.com

После создания ключа API SendGrid я проверил его на их платформе, и он дал мне статус 200, подтверждающий, что это нормально. Я также изменил настройки ключа Api на полный доступ. Я не знаю, есть ли дополнительные настройки, которые мне нужно сделать на их платформе в другом, чтобы мой почтовый запрос должным образом аутентифицировался из моего приложения rails, или это факт, что я использую бесплатный план?.

0 ответов

Другие вопросы по тегам