【发布时间】:2019-11-21 00:03:19
【问题描述】:
我使用 imaplib 库来处理电子邮件。我想查找一个人的所有电子邮件。下一个代码不适用于所有消息:
typ, data = con.search(None, 'FROM "name.surname@testmail.com"')
有时我需要设置这样的东西来查找消息:
typ, data = con.search(None, 'FROM "Surname, Name"')
我无法通过电子邮件找到消息。如果我理解正确,它仅适用于 html 格式的消息。
print(message['From'])
print(type(message['From']))
接下来将打印该代码:
"Surname, Name" <name.surname@testmail.com>
<class 'str'>
为什么搜索功能不会在这个字符串中搜索所有可能的提及?它不像普通的字符串搜索那样工作吗?如果我想查找电子邮件为“@testmail.com”的所有邮件,而不是来自特定人的邮件,我应该如何搜索?
【问题讨论】:
-
第一个搜索搜索 From 字段包含子字符串 name.surname@testmail.com 的邮件,不多也不少。这个问题似乎没有明确说明,应该澄清或结束。您的消息是否包含该字符串?
-
是的。我的收件箱\TestFolder 中只有一条消息。它来自“name.surname@testmail.com”。 search(None, 'FROM "name.surname@testmail.com"') 什么也不返回, search(None, 'FROM "Surname, Name"') 返回该消息。很奇怪,这就是为什么我在stackoverflow上问了一个问题,我在google上没有找到任何关于我的奇怪案例的信息。
-
看来,搜索功能仅在第一部分(在双引号之间)搜索子字符串,而忽略了带有电子邮件地址的字符串的其他部分。即使按一个昏迷搜索,我也能找到我的消息:con.search(None, 'FROM ","')。也许,问题出在那个引号上?
-
注意:搜索是由你的服务器实现的,而不是由客户端实现的;如果搜索有问题,那是因为您的服务器错误地实现了它。您使用的是什么服务器实现?
-
正确的引号字符是".
标签: python email search imap imaplib