我正在编写一个简单的脚本,通过python脚本从gmail读取未读邮件。我有下面的脚本,但是当我运行python脚本时,我得到下面标记的IMAP错误。在这个问题上的任何帮助都是感激的。
我在gmail设置中启用了IMAP。还有其他的配置我需要照顾,让它工作吗?
import imaplib
obj = imaplib.IMAP4_SSL('imap.gmail.com','993')
obj.login('username','password')
obj.select()
obj.search(None,'Unseen')
其中,username
是我的gmail用户名,password
是我的gmail帐户密码。
Traceback (most recent call last):
File "test.py", line 3, in <module>
obj.login('ashwin.tumma23@gmail.com',password)
File "/usr/lib/python2.7/imaplib.py", line 519, in login
raise self.error(dat[-1])
imaplib.error: [ALERT] Please log in via your web browser:
https://support.google.com/mail/accounts/answer/78754 (Failure)
visibleman的答案是正确的。作为另一种选择,您可能希望将脚本切换到使用Gmail API而不是IMAP。Gmail API使用OAuth 2.0进行身份验证,这更加安全。Gmail API也是一个比IMAP更容易使用的协议。
我也遇到了同样的问题。我不确定哪一步最终解决了它,但这是我所做的:
- 进入设置页面,启用IMAP,点击保存更改
- 通过web界面退出并返回
- 在https://www.google.com/settings/security/lesssecureapps启用"lesssecure"
- 通过imaplib登录(先创建新对象)
似乎在此之后,您可以再次禁用"较不安全",它仍然有效。