python - IMAP 搜索地址等于不包含
问题描述
=)
我需要从具有特定地址的电子邮件收件箱中获取所有消息。为此,我使用命令:
self.server.search(None, '(HEADER FROM "test@gmail.com")')
它是有效的,但是当我尝试查找消息表单时,st@gmail.com
我得到了相同的结果。而且我知道用这个标准我搜索所有消息都包含特定的字符串。但对我来说test@gmail.com
,st@gmail.com
是不同的地址。如何搜索 EQUAL 而不是 CONTAINS 地址?
import imaplib
self.server = imaplib.IMAP4(self.imap_ssl_host, self.imap_ssl_port)
解决方案
您可以尝试搜索<test@gmail.com>
而不是test@gmail.com
.
来自 test@gmail.com 的消息通常会显示From: Firstname Lastname <test@gmail.com>
,其中包含子字符串<test@
,并且大多数 IMAP 搜索都是子字符串搜索,包括FROM
. 如果这个 hack 对您和您使用的任何服务器都足够了,那么对您有好处,否则您需要进行客户端过滤以消除误报。
推荐阅读
- python - mypy 泛型可以表达将返回序列类型作为参数传递吗?
- reactjs - Auth0 SPA TypeError:无法读取未定义的属性“idTokenPayload”
- c - Stack-Smashing Protection 错误消息不包含程序名称
- javascript - 如何将{variable}连接到react js中的href标签?
- laravel - 如何使用 auth 命令给出的重置密码 mailable
- python-3.x - 无法使用 PyInstaller/ 创建工作 PyQt5 Python 可执行文件
- sql - 循环遍历不同的表进行计数
- mysql - 如何获得单行中多列的最大值?
- python - 脚本不过滤脏话不和谐 py
- python-3.x - 当脚本本身正在导入许多其他模块时在分析器下运行脚本,其中一个模块由于已知功能而非常慢