从命令行访问gmail时IMAP错误



我正在编写一个简单的脚本,通过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登录(先创建新对象)

似乎在此之后,您可以再次禁用"较不安全",它仍然有效。

最新更新