首页 > 解决方案 > IMAP 搜索地址等于不包含

问题描述

=)

我需要从具有特定地址的电子邮件收件箱中获取所有消息。为此,我使用命令:

self.server.search(None, '(HEADER FROM "test@gmail.com")')

它是有效的,但是当我尝试查找消息表单时,st@gmail.com我得到了相同的结果。而且我知道用这个标准我搜索所有消息都包含特定的字符串。但对我来说test@gmail.comst@gmail.com是不同的地址。如何搜索 EQUAL 而不是 CONTAINS 地址?

import imaplib
self.server = imaplib.IMAP4(self.imap_ssl_host, self.imap_ssl_port)    

标签: pythonimap

解决方案


您可以尝试搜索<test@gmail.com>而不是test@gmail.com.

来自 test@gmail.com 的消息通常会显示From: Firstname Lastname <test@gmail.com>,其中包含子字符串<test@,并且大多数 IMAP 搜索都是子字符串搜索,包括FROM. 如果这个 hack 对您和您使用的任何服务器都足够了,那么对您有好处,否则您需要进行客户端过滤以消除误报。


推荐阅读