下面是代码:
box = imaplib.IMAP4_SSL(HOST,PORT)
box.login(sender,password)
box.select("INBOX")
data = box.search(None, "all")
我不明白一件事,为什么我必须在搜索方法中写None?我发现的每一个关于使用imaplib的教程,都说我们应该写None,但是没有人解释为什么。有人能给我一些关于这方面的信息吗?
这就是有时阅读文档很重要的地方,因为它将告诉您比教程更多的东西:
https://docs.python.org/3.8/library/imaplib.html#imaplib.imap4.搜索
从文档中-搜索方法的签名是:
IMAP4.搜索(字符集,条件[,...])
在邮箱中搜索匹配的邮件。 charset可以是None,在这种情况下,不会在向服务器发出的请求中指定任何charset。 IMAP协议要求至少指定一个标准; 当服务器返回错误时将引发异常。 如果使用enable()命令启用了utf8=accept功能,则charset必须为None。
也就是说,如果其中之一,第一个参数将为None:
因为您还没有使用enable,所以第一个条件适用,因此您的代码段正在搜索收件箱中所有主题为'all'的电子邮件。