Отправка из gmail через smtplib

Я пытаюсь использовать smtplib для настройки скрипта Python, который будет отправлять уведомления по электронной почте. Мне не нужно ничего необычного, поэтому я решил придерживаться основ и использовать SMTP для своих сообщений. Следуя одному из многих доступных онлайн-примеров, моя попытка сделать это начинается

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login('username','password')

но в этот момент происходит сбой с SMTPAuthenticationError 534, говорящий мне войти в систему через мой веб-браузер. Когда я это сделал, Gmail написал мне по электронной почте, что вход не удался, потому что он пришел из «приложения, которое не соответствует современным стандартам безопасности».

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

Значит, старый добрый SMTP не подойдет, и мне нужно немного пофантазировать? Что я делаю неправильно или что я могу сделать вместо этого, чтобы это сработало?


person Empiromancer    schedule 22.01.2016    source источник
comment
Этот вопрос касается IMAP, но я подозреваю, что применимы те же решения. Одним из предложений является аутентификация с использованием OAuth; этот вопрос касается того, как это сделать с помощью smtplib.   -  person legoscia    schedule 22.01.2016
comment
включить двухфакторную аутентификацию и сгенерировать пароль приложения для этого приложения. Это работало для меня около 3 лет назад   -  person inspectorG4dget    schedule 22.01.2016


Ответы (1)


Как оказалось, мои попытки настроить Gmail для приема входа из менее безопасных приложений не увенчались успехом (по какой-то причине) с первой попытки. Перейдите на страницу https://myaccount.google.com/security?pli=1 и включите этот параметр позволил мне успешно получить доступ.

Комментарии, указывающие мне на oauth2 и пароли приложений, тем не менее, наиболее полезны, и теперь, когда я выполнил базовые задачи, я могу изучить их для более надежных долгосрочных подходов. Спасибо!

person Empiromancer    schedule 22.01.2016