Ответ 1
Просто перейти: https://accounts.google.com/DisplayUnlockCaptcha
и нажмите "Продолжить", чтобы разрешить доступ с других серверов.
Я пытаюсь отправить электронные письма из 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')
Поскольку я работаю на удаленном сервере без графического интерфейса, я даже не могу войти в систему из браузера.
Просто перейти: https://accounts.google.com/DisplayUnlockCaptcha
и нажмите "Продолжить", чтобы разрешить доступ с других серверов.
Я уже несколько часов возился с этим в тесте огурца /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 в разделе "Вход и безопасность" выберите "Подключенные приложения и сайты" ". это также имеет возможность "Разрешить менее безопасные приложения". после включения этого, мой сервер теперь может отправить мне автоматическое письмо.
Когда я попытался получить доступ к своей учетной записи, мне было отправлено это письмо, состоящее из этой ссылки. https://www.google.com/settings/security/lesssecureapps
Вы можете включить, а затем, возможно, выключить после того, как вы закончили тестирование.
Я получил следующий ответ от поддержки Google Apps:
Вам нужно включить реле исходящих сообщений. Для этого:
- Войдите в свою учетную запись на странице google.com/a/vashdomain.com.
- Перейдите на вкладку "Параметры" и выберите "Электронная почта" в левом столбце.
- В разделе "Исходящее реле" выберите "Разрешить пользователям отправлять почту через внешний SMTP при настройке адреса" с "вне вашего домена.
- Нажмите" Сохранить изменения".
Они также предоставили ссылку справки: http://support.google.com/a/bin/answer.py?hl=en&answer=176054
После включения реле исходящей почты и использования прокси для входа в веб-почту еще раз (благодаря @DaniloBargen и @joshcartme) проблема была решена. Я прочитал ссылку, объясняющую, что такое Исходное реле, и я не совсем уверен, зачем мне это нужно (я не верю, что использую внешний SMTP-сервер).
Поскольку я не уверен, что это то, что решило проблему, я не буду отмечать ответ как принятый, пока не получу подтверждение.
Настройте туннель ssh на соответствующий сервер, чтобы вы могли с вашего домашнего компьютера войти в веб-клиент gmail с использованием IP-адреса сервера. Вам, вероятно, потребуется туннель порт 80 и порт 443, может быть, только 443. После входа через веб-клиента проблема должна исчезнуть в соответствии со статьей базы знаний, указанной в SMTPAuthenticationError.
Вот пример того, как настроить туннель: http://www.noah.org/wiki/SSH_tunnel#simple_port_forwarding_.28SSH_tunneling.29
Вариант №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/
etusm предоставил два места для включения менее безопасных приложений:
Здесь: https://myaccount.google.com/security?pli=1#connectedapps(внизу страницы)
И здесь: https://www.google.com/settings/security/lesssecureapps
оба были включены, но мой безголовый сервер по-прежнему не мог отправить мне электронное письмо. основанный на рекомендации JohnPang google +, я нашел третье место, где мне пришлось разрешить доступ к менее безопасным приложениям:
на myaccount.google.com в разделе "Вход и безопасность" выберите "Связанные приложения и сайты". это также имеет возможность "Разрешить менее безопасные приложения". после включения этого, мой сервер теперь может отправить мне автоматическое письмо.
Я нашел решение по адресу https://support.google.com/accounts/answer/185833?hl=en и, наконец, https://security.google.com/settings/security/apppasswords
Если вы тестируете свой проект на локальном компьютере, вы должны перейти к последней ссылке и включить "Доступ для менее безопасных приложений".
Есть ли у вас двухфакторная аутентификация для учетной записи приложений? Тогда вам может понадобиться использовать специальный пароль для этого приложения.
Все вышеизложенное не помогает в моем случае (странно). Но эта ссылка может вам помочь:
https://security.google.com/settings/security/activity
Вы можете получить доступ к нему через Google Plus
измените свои настройки на https://www.google.com/settings/security/lesssecureapps, чтобы ваша учетная запись больше не защищалась современными стандартами безопасности.
Это происходит из-за того, что некоторые приложения помечены как менее безопасные приложения Google. Поэтому для использования этих приложений вам необходимо предоставить доступ для этих приложений. для этого выполните http://www.codematrics.com/your-imap-server-wants-to-alert-you-to-the-following-please-login-via-your-web-browser-gmail/
Надеюсь, что это решит вашу проблему.
На данный момент (посмотрите дату моего сообщения) в пользовательском интерфейсе администратора учетной записи Gmail включен только один параметр "Разрешить менее безопасные приложения": https://myaccount.google.com/u/0/security#connectedapps
После этого он будет работать с вашего локального компьютера (Mac или ПК).
Чтобы разрешить доступ с Amazon EC2 (и я подозреваю, что другие облачные хосты), есть еще один флаг, который будет установлен в Google, никогда не заканчивающийся битвой со спамерами: https://accounts.google.com/b/0/DisplayUnlockCaptcha
В моем случае, когда я попытался войти в учетную запись google через интернет, он попросил меня перехватить. Я вошел в капчу, а затем автоматизация работала.