Как устранить ошибку аутентификации SMTP / Ruby в приложении Rails, Devise, SendGrid, размещенном на Heroku - PullRequest
0 голосов
/ 23 февраля 2020

Добрый день, ребята, я работаю над приложением 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
  }

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...