Проблема с использованием Gmail для отправки электронной почты из моего приложения Rails - PullRequest
0 голосов
/ 30 января 2020
Rails 4.2.1
Devise 3.4.1

У меня есть приложение, которое работало нормально, но не использовалось около года. Я пытаюсь использовать его, и первое, что я попытался сделать, это сбросить пароль. Сбой приложения, так как в моем средах / production.rb есть следующий параметр:

config.action_mailer.raise_delivery_errors = true

Приложение использует Devise, а я использую учетную запись Gmail

config.action_mailer.smtp_settings = {
  address: Rails.application.secrets.email_provider_smtp_server,
  port: Rails.application.secrets.email_provider_smtp_port,
  domain: "gmail.com",
  authentication: "plain",
  enable_starttls_auto: true,
  user_name: Rails.application.secrets.email_provider_username,
  password: Rails.application.secrets.email_provider_password
}
config.action_mailer.default_url_options = {:host => Rails.application.secrets.domain_name}
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true

Приложение также использует Google ReCaptcha для сброса пароля.

Сначала я попытался установить для параметра «Менее безопасный доступ к приложению» значение «ВКЛ» для учетной записи Google, но это не сработало, а затем следовал совету Stackoverflow, Я сделал:

accounts.google.com/b/1/DisplayUnlockCaptcha

, чтобы разблокировать электронную почту Google CAPTCHA

На этот раз сброс пароля из моего браузера работал нормально. Однако, когда кто-то из другого места попытался сбросить свой пароль, приложение упало со старым сообщением в файле журнала:

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv):

Когда я попробовал его адрес электронной почты, в форме сброса пароля из мой браузер, он работал.

Я полагаю, это должно быть связано с некоторыми изменениями безопасности, которые сделал Google за последний год. Является ли мое единственное решение, не использующее CAPTCHA (что было бы проблемой), или есть другое решение?

...