it-swarm.com.ru

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

Я пытаюсь отправить электронную почту из Django, используя электронную почту, настроенную в Службах Google, моя конфигурация в файле 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')

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

38

Просто перейдите на https://accounts.google.com/DisplayUnlockCaptcha И нажмите «продолжить». Это позволит разрешить доступ с других серверов.

38
Hasan Veli Soyalan

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

Слишком знакомая ошибка:

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

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

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

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

ОБА ЭТИХ GODFORSAKEN TOGGL необходимо изменить, чтобы избавиться от этого сообщения об ошибке.

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

30
etusm

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

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

13
jasxir

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

Вам необходимо включить ваше исходящее реле. Сделать это:

  1. Войдите в свою учетную запись со страницы google.com/a/yourdomain.com.
  2. Откройте вкладку «Настройки» и выберите «Электронная почта» в левом столбце.
  3. В разделе «Исходящая ретрансляция» выберите «Разрешить пользователям отправлять почту через внешний SMTP» при настройке размещенного «от» адреса за пределами вашего домена.
  4. Нажмите Сохранить изменения.

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

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

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

7

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

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

5
joshcartme

Вариант № 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/

5
finspin

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

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

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

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

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

4
Milothicus

Я нашел решение по адресу: https://support.google.com/accounts/answer/185833?hl=ru и, наконец, https://security.google.com/settings/security/apppasswords

Если вы тестируете свой проект на локальном компьютере, перейдите по последней ссылке и включите «Доступ к менее защищенным приложениям».

2
1man

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

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

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

  1. Открыть Google+
  2. Выберите «Безопасность» сверху
  3. В разделе «Недавние действия» нажмите «Просмотреть все события»
  4. Вы увидите список «Необычная активность»
  5. Он показывает «Попытка входа приложения/устройства (предотвращено) в Сингапуре», так как я использую AWS из Сингапура
  6. Нажмите «Изменить»> «Да, это был я!»
  7. Повторите попытку снова. Готово!
1
John Pang

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

1
Christer B

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

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

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

0
Alex Rogachevsky