Python IMAP 搜索部分主题

标签 python imap

我正在尝试获取所有主题以“新订单”开头的电子邮件,但我似乎无法弄清楚。目前我可以搜索与这样的设置完全匹配的...

result, data = M.uid('search', None, '(HEADER Subject "Subject Here")')

但是,这不会检索任何不完全匹配的消息。我将如何进行部分匹配?

如果重要的话,我正在与 gmail 的 imap 服务器通话。

谢谢

最佳答案

根据IMAP RFC SEARCH 应该将其所有匹配作为子字符串匹配:

In all search keys that use strings, a message matches the key if the string is a substring of the field. The matching is case-insensitive.

因此,搜索

M.uid('search', None, 'HEADER Subject "New Order"')

应该匹配主题中任何地方出现 New Order 的所有邮件。如果不是,您应该通知 Google 他们的服务器没有正确实现 IMAP。同时,您可以尝试使用 SUBJECT 键,如

M.uid('search', None, 'SUBJECT "New Order"')

此外,根据 Google's IMAP extension documentation您可以使用 X-GM-RAW 键和 gmail 搜索字符串,如

M.uid('search', None, r'X-GM-RAW "subject:\"New Order\""')

关于Python IMAP 搜索部分主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403790/

相关文章:

python - (Django 教程)从 'views' 应用程序导入 'polls' - 语法错误 PyCharm

Python PIP 安装抛出 TypeError : unsupported operand type(s) for -=: 'Retry' and 'int'

imap - Mozilla Thunderbird中的高级消息过滤器规则

c# - IMAP 服务器用 'SEARCH' 响应 : Character set not supported for search 回复 'NO' 命令

python - 需要用 Python 编写的 POP3 服务器或 IMAP 服务器的示例

python - 在 python 中实现 RSA

python - forEdges迭代器在networkit中的使用(python)

python - 如何获取GridSearchCV部分完成的结果?

php - 使用 phpmailer 发送的邮件不会转到 "Sent"IMAP 文件夹

objective-c - iOS 中是否有用于 POP/IMAP 的 API?