imaplib.IMAP4_SSL()的输出意味着什么。在Python中搜索?

时间:2018-05-15 12:20:16

标签: python imaplib

m = imaplib.IMAP4_SSL('imap.gmail.com')
typ, accountDetails =m.login(userName, passwd)
m.select("inbox")
resp, data = m.search(None, "(ON {0})".format( time.strftime("%d-%b-%Y") ),'(FROM "email")' )
print(resp)
print(data)

这给了我输出:

OK
[b'6391 6395']

所以我假设'好的'意味着它找到了一封电子邮件,但我不知道该怎么回事。 [b' 6391 6395']表示。这些数字代表什么?

1 个答案:

答案 0 :(得分:0)

imaplib并不真正解析响应,所以你从库中获得了相当原始的响应。 OK是对命令的总体响应,这意味着服务器了解您的请求。

响应的每一行都作为列表中的项返回。 SEARCH只返回一行,因此您有一个项目列表。由于imaplib不进行任何解析,因此您将以原始格式获取该响应的文本:空格分隔数字的字节对象,表示消息序列号。

您应该能够获得msns = data[0].split(b' ')的MSN列表。

然后,您可以遍历此列表以获取更多信息,例如:

for msn in msns:
  resp, data = m.fetch(msn, '(RFC822)')