Rails 4 ActionMailer с gmail Net:: SMTPAuthenticationError: 534-5.7.14

Я пытаюсь отправить электронное письмо в версию разработки моего приложения. Ничто из того, что я делаю, не работает. Я продолжаю получать: Net:: SMTPAuthenticationError: 534-5.7.14 https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=blahblahblah

Другие сообщения SO, за которыми я следил:

Net:: SMTPAuthenticationError при отправке электронной почты из приложения Rails (в промежуточной среде)

Выполнение SMTP-ошибки при попытке отправить электронную почту в приложении RoR

... и т.д. и ничего не работает. Я собираюсь вырвать мои мозги, если их не решить. Я так долго тратил на это...

Я попытался перейти непосредственно к http://www.google.com/accounts/DisplayUnlockCaptcha и нажать "продолжить", никаких результатов. У меня уже в настройках моей учетной записи Google включен доступ к защищенным приложениям (Google → Безопасность → Разрешения учетной записи → Доступ). Я попытался перейти к ссылке, опубликованной после ошибки, и вошел в систему оттуда, и никаких результатов.

Моя настройка в config/environment/development.rb

  config.action_mailer.default :charset => "utf-8"
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: ENV['MAIL_EMAIL'],
    password: ENV['MAIL_PASS'],
    authentication: 'plain',
    enable_starttls_auto: true
  }

Если это имеет значение:

Из журналов ошибок apache:

Предупреждение: виртуальные хосты на основе имени SSL основаны только на клиентах с поддержкой индикации имени сервера TLS

Я размещаю два домена на одном и том же IP-адресе.

Я переключил приложение rails в режим производства, чтобы узнать, поможет ли это. Нет результатов.

Пожалуйста, помогите.

Ответы

Ответ 1

Перейдите в настройки учетной записи Google, найдите Security -> Account permissions -> Access for less secure apps, включите эту опцию.

Об этой опции: https://support.google.com/accounts/answer/6010255

Ответ 2

Это решение отлично подходит для меня.

config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: [email protected],
    password: mypassword,
    authentication: 'plain',
    enable_starttls_auto: true
}

Поскольку Google попытается заблокировать ваш вход, если вы отключили доступ для менее безопасных приложений в настройках своих учетных записей. Поэтому следуйте этой ссылке и Включить" для менее безопасных приложений.