Как я могу избежать отправки почтового сервера Google с просьбой войти в систему через браузер?

Я пытаюсь отправить электронные письма из Django, используя электронную почту, настроенную Google Apps, моя конфигурация в файле settings.py выглядит примерно так:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

Когда я пытаюсь отправить электронное письмо, используя:

from django.core.mail import send_mail

send_mail("Happy new year", "We wish you the best for 3001",
    "[email protected]", ["[email protected]"])

Я получаю следующую ошибку:

SMTPAuthenticationError: 
(535, '5.7.1 Please log in with your web browser and then try again. 
 Learn more at
 5.7.1 https://support.google.com/mail/bin/answer.py?answer=78754 k2sm758604obl.14')

Поскольку я работаю на удаленном сервере без графического интерфейса, я даже не могу войти в систему из браузера.

Ответы

Ответ 2

Я уже несколько часов возился с этим в тесте огурца /capybara/selenium - обнаружил что-то глупое, которое исправит эту ошибку для хорошего, гарантированного

Все слишком знакомая ошибка:

Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure) (Net::IMAP::NoResponseError)

Как оказалось, существует TWO "Разрешить менее безопасные приложения", которые переключаются, которые необходимо изменить, чтобы разрешить логины с неизвестных устройств /IMAP.

Здесь: https://myaccount.google.com/security?pli=1#connectedapps (внизу страницы)

И здесь: https://www.google.com/settings/security/lesssecureapps

В ОБЛАСТИ ЭТИХ ГОРОДСКИХ ВЗАИМОДЕЙСТВИЙ необходимо изменить, чтобы избавиться от этого сообщения об ошибке.

Изменить: от пользователя Milothicus (https://stackoverflow.com/users/3538026/milothicus): на myaccount.google.com в разделе "Вход и безопасность" выберите "Подключенные приложения и сайты" ". это также имеет возможность "Разрешить менее безопасные приложения". после включения этого, мой сервер теперь может отправить мне автоматическое письмо.

Ответ 3

Когда я попытался получить доступ к своей учетной записи, мне было отправлено это письмо, состоящее из этой ссылки. https://www.google.com/settings/security/lesssecureapps

Вы можете включить, а затем, возможно, выключить после того, как вы закончили тестирование.

Ответ 4

Я получил следующий ответ от поддержки Google Apps:

Вам нужно включить реле исходящих сообщений. Для этого:

  • Войдите в свою учетную запись на странице google.com/a/vashdomain.com.
  • Перейдите на вкладку "Параметры" и выберите "Электронная почта" в левом столбце.
  • В разделе "Исходящее реле" выберите "Разрешить пользователям отправлять почту через внешний SMTP при настройке адреса" с "вне вашего домена.
  • Нажмите" Сохранить изменения".

Они также предоставили ссылку справки: http://support.google.com/a/bin/answer.py?hl=en&answer=176054

После включения реле исходящей почты и использования прокси для входа в веб-почту еще раз (благодаря @DaniloBargen и @joshcartme) проблема была решена. Я прочитал ссылку, объясняющую, что такое Исходное реле, и я не совсем уверен, зачем мне это нужно (я не верю, что использую внешний SMTP-сервер).

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

Ответ 5

Настройте туннель ssh на соответствующий сервер, чтобы вы могли с вашего домашнего компьютера войти в веб-клиент gmail с использованием IP-адреса сервера. Вам, вероятно, потребуется туннель порт 80 и порт 443, может быть, только 443. После входа через веб-клиента проблема должна исчезнуть в соответствии со статьей базы знаний, указанной в SMTPAuthenticationError.

Вот пример того, как настроить туннель: http://www.noah.org/wiki/SSH_tunnel#simple_port_forwarding_.28SSH_tunneling.29

Ответ 6

Вариант №1 (это сработало для меня):

После получения ошибки Please log in with your web browser and then try again. Learn more etc. при попытке отправить электронную почту из моего веб-приложения я вошел в электронную почту через браузер с моего локального компьютера.

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

Вариант № 2:

Если параметр №1 не работает для вас, попробуйте следующее: http://www.rocketideas.com/2012/05/gmail-error-password-not-accepted-from-server-solved/

Ответ 7

etusm предоставил два места для включения менее безопасных приложений:

Здесь: https://myaccount.google.com/security?pli=1#connectedapps(внизу страницы)

И здесь: https://www.google.com/settings/security/lesssecureapps

оба были включены, но мой безголовый сервер по-прежнему не мог отправить мне электронное письмо. основанный на рекомендации JohnPang google +, я нашел третье место, где мне пришлось разрешить доступ к менее безопасным приложениям:

на myaccount.google.com в разделе "Вход и безопасность" выберите "Связанные приложения и сайты". это также имеет возможность "Разрешить менее безопасные приложения". после включения этого, мой сервер теперь может отправить мне автоматическое письмо.

Ответ 9

Есть ли у вас двухфакторная аутентификация для учетной записи приложений? Тогда вам может понадобиться использовать специальный пароль для этого приложения.

Ответ 10

Все вышеизложенное не помогает в моем случае (странно). Но эта ссылка может вам помочь:

https://security.google.com/settings/security/activity

Вы можете получить доступ к нему через Google Plus

  • Откройте Google +
  • Выберите "Безопасность" сверху
  • В разделе "Недавняя активность" нажмите "Просмотреть все события"
  • Вы увидите список "Необычная деятельность"
  • Он показывает "попытка входа в приложение/устройство (предотвращена) в Сингапуре", поскольку я использую AWS из Сингапура.
  • Нажмите "Изменить" > "Да, это был я!"
  • Повторите попытку. Готово!

Ответ 11

измените свои настройки на https://www.google.com/settings/security/lesssecureapps, чтобы ваша учетная запись больше не защищалась современными стандартами безопасности.

Ответ 12

Это происходит из-за того, что некоторые приложения помечены как менее безопасные приложения Google. Поэтому для использования этих приложений вам необходимо предоставить доступ для этих приложений. для этого выполните http://www.codematrics.com/your-imap-server-wants-to-alert-you-to-the-following-please-login-via-your-web-browser-gmail/

Надеюсь, что это решит вашу проблему.

Ответ 13

На данный момент (посмотрите дату моего сообщения) в пользовательском интерфейсе администратора учетной записи Gmail включен только один параметр "Разрешить менее безопасные приложения": https://myaccount.google.com/u/0/security#connectedapps

После этого он будет работать с вашего локального компьютера (Mac или ПК).

Чтобы разрешить доступ с Amazon EC2 (и я подозреваю, что другие облачные хосты), есть еще один флаг, который будет установлен в Google, никогда не заканчивающийся битвой со спамерами: https://accounts.google.com/b/0/DisplayUnlockCaptcha

Ответ 14

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