Я хочу подключиться к Gmail, используя imapclient.Я следовал примеру из книги Аль Суигарта «Автоматизировать скучные вещи с помощью Python», глава 16.Код из книги хорошо работает в интерактивном режиме.Тем не менее, Ал и другие предупреждают, чтобы не включать пароли в программу, которую вы запускаете.Я установил пароль приложения, который работает как брелок в интерактивном режиме.Но возвращается ошибка, когда я пытаюсь отправить пароль с клавиатуры в качестве стандартного ввода при запуске его в качестве сценария.Я также попробовал input (), который тоже не работает.Я избегал ввода пароля приложения прямо в код;будет ли это приемлемой практикой по большинству стандартов?Кроме того, я попробовал приведенный ниже код из терминала linux и из среды разработки spyder, оба способа возвращают ошибки.
import imapclient
import getpass
imapObj = imapclient.IMAPClient('imap.gmail.com', ssl=True)
app_password = getpass.getpass('Password')
imapObj.login('john@gmail.com', 'app_password')
ожидаемые результаты: successful login
Фактические результаты:
File "/home/john/anaconda3/lib/python3.6/site-packages/imapclient/imapclient.py", line 345, in login
raise exceptions.LoginError(str(e))
LoginError: b'[AUTHENTICATIONFAILED] Invalid credentials (Failure)'