繁体   English   中英

使用imaplib在Gmail中搜索

[英]Search in Gmail using imaplib

import imaplib

user = raw_input("Enter your GMail username:")
pwd = getpass.getpass("Enter your password: ")


m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user,pwd)
m.select("[Gmail]/Inbox") # here you a can choose a mail box like INBOX instead
m.search("NEW")

我试图通过Python中的imap在Gmail中仅选择新邮件。 问题是,我总是得到以下错误:

imaplib.error:命令在状态AUTH中搜索非法

我用Google搜索并读到我必须使用imap4,但我已经在使用它了,我无法弄清楚如何解决它。

问题似乎是没有名为[Gmail]/Inbox邮箱。 可以通过调用m.list()获取所有有效邮箱的列表。

我通过使用Python的交互式shell(使用Python 2.6)发现了这一点,它显示了IMAP服务器对每个IMAP操作的响应。

注意:使用Python交互式shell时,导入pprint并调用pprint.pprint(m.<method of m>(<params>))对于发回大量信息的一些IMAP命令可能是一个好主意。

还有一件事 - imaplib的select()函数默认选择INBOX,看起来更干净。

http://docs.python.org/library/imaplib.html#imaplib.IMAP4.select

import imaplib     
obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)    
obj.login('username', 'password')    
obj.select('**label name**') <-- the label in which u want to search message    
obj.search(None, 'FROM', '"LDJ"')

对我来说,它有“[Gmail]”存在问题:

即改变这个:

m.select("[Gmail]/Inbox") 

对此:

m.select("Inbox") 

无论如何,使用m.list()作为上面建议的人是一个好的开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM