我正在寻求一些帮助,以登录gmail帐户并使用python脚本下载一些电子邮件。我正在尝试采用此处找到的方法,但是我遇到了第1步的问题,即通过imap访问帐户。
这是我开始的代码:
import email
import imaplib
m = imaplib.IMAP4_SSL("imap.gmail.com",993)
rc, resp = m.login('myemailaddress','mypassword')
我收到以下错误:
Traceback (most recent call last):
File "email.py", line 1, in <module>
import email, imaplib
File "/home/will/wd/email.py", line 14, in <module>
m.login('myemailaddress','mypassword')
File "/usr/lib/python3.4/imaplib.py", line 538, in login
raise self.error(dat[-1])
imaplib.error: b'[ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure)'
在gmail设置中确实启用了Imap。我已经查看了Google支持链接上的说明以及在类似情况下(例如此处和此处)有关此错误的问题,但是我的情况与第一种情况有所不同,因为
1)从一开始它就没有用,
2)我是不经常运行它会被阻塞。它也不同于第二个示例,因为这是一个普通的gmail帐户,而不是带有google apps帐户的自定义域。
使用https://accounts.google.com/DisplayUnlockCaptcha尝试并允许访问对我也不起作用。
允许登录的唯一方法是将我的Google帐户安全设置更改为“允许访问安全性较低的应用”。
我的问题是:在不放松帐户安全性设置的情况下,如何修复我的代码(或更普遍地说,是我的设置)以允许我登录?有没有办法使用libimap满足安全性要求?
如果您想避免出现此错误而又不损害帐户的安全性,请使用OAuth进行身份验证。此处记录了该协议,并且有Python示例代码显示XOAUTH2与imaplib的结合使用。
与此无关,您应该考虑对帐户启用两步验证,以使其更加安全。如果这样做,则可以使用应用密码来连接到IMAP,这也可以避免上述警告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句