2024-05-18 11:15:54 发布
网友
我想把所有主题以“新订单”开头的邮件都取出来,但我好像想不通。目前,我可以搜索一个与这样的设置完全匹配。。。
result, data = M.uid('search', None, '(HEADER Subject "Subject Here")')
但是,这不会检索任何不完全匹配的消息。我该怎么做部分匹配呢?
如果重要的话,我正在和gmail的imap服务器通话。
谢谢
这对我有效:
mail.uid('search', None, r'(X-GM-RAW "subject:\"New Order\"")')
result, data = m.search(None, 'X-GM-RAW', 'subject: New Order')
根据IMAP RFCSEARCH应该将其所有匹配作为子字符串匹配:
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键,如
New Order
SUBJECT
M.uid('search', None, 'SUBJECT "New Order"')
另外,根据Google's IMAP extension documentation,您可以使用X-GM-RAW键和gmail搜索字符串,如
X-GM-RAW
M.uid('search', None, r'X-GM-RAW "subject:\"New Order\""')
这对我有效:
这对我有效:
根据IMAP RFC
SEARCH
应该将其所有匹配作为子字符串匹配:因此,搜索
应该匹配主题中任何位置出现
New Order
的所有消息。如果没有,您应该通知Google他们的服务器没有正确实现IMAP。同时,您可以尝试使用SUBJECT
键,如另外,根据Google's IMAP extension documentation,您可以使用
X-GM-RAW
键和gmail搜索字符串,如相关问题 更多 >
编程相关推荐