Как настроить мои конфигурационные файлы в Rails, чтобы SendGrid работал в Heroku?Ошибка аутентификации (535 не удалось: неверное имя пользователя / пароль - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь настроить активную почтовую функцию в своем приложении Rails с помощью Devise и SendGrid, чтобы пользователи могли получить подтверждение по электронной почте при регистрации и запросить ссылку на забытый пароль.При развертывании в Heroku и попытке зарегистрироваться я получаю сообщение об ошибке, когда нажимаю «зарегистрироваться».В журналах Heroku я вижу следующее:

Completed 500 Internal Server Error in 547ms (ActiveRecord: 8.1ms)
Net::SMTPAuthenticationError (535 Authentication failed: Bad username / password

Возможно, это связано с тем, как у меня есть мои файлы конфигурации, но я не могу это понять.Любая помощь будет высоко ценится!Вот мои файлы.

config / application.yml

production:
  SECRET_KEY_BASE: <%= ENV["SECRET_KEY_BASE"] %>

development:
 GMAIL_USERNAME: scott.ian.munro@gmail.com
 GMAIL_PASSWORD: password
 SENDGRID_USERNAME: app115625999@heroku.com
 SENDGRID_PASSWORD: password

test:
 GMAIL_USERNAME: scott.ian.munro@gmail.com
 GMAIL_PASSWORD: password
 SENDGRID_USERNAME: app115625999@heroku.com
 SENDGRID_PASSWORD: password

production:
 GMAIL_USERNAME: scott.ian.munro@gmail.com
 GMAIL_PASSWORD: password
 SENDGRID_USERNAME: app115625999@heroku.com
 SENDGRID_PASSWORD: password

Я использую гем figaro для управления переменными среды.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Я тоже использую больше параметров:

ActionMailer :: Base.smtp_settings = {.,,enable_starttls_auto: true, openssl_verify_mode: "none"}

:)

0 голосов
/ 13 февраля 2019

Ваша проблема в том, что вы ссылаетесь на GMAIL_USERNAME и GMAIL_PASSWORD вместо SENDGRID_USERNAME и SENDGRID_PASSWORD, и вы все еще ссылаетесь на SMTP-сервер и порт Gmail.

Предполагается, чтовы используете этот гем: https://github.com/stephenb/sendgrid, это должно помочь вашему конфигурационному файлу:

config.action_mailer.smtp_settings = {
   address: "smtp.sendgrid.com",
   port: 25,
   domain: "heroku.com",
   authentication: :plain,
   user_name: ENV["SENDGRID_USERNAME"],
   password: ENV["SENDGRID_PASSWORD"],
}

Обновление: за ваш комментарий, что вы используете гем figaro, сделайтеОбязательно запустите задачу rake, которая добавляет переменные ENV в Heroku: rake figaro:heroku

...