按不同条件查找消息 IMAP.search()

Find messages by different criteria IMAP.search()

我使用 imaplib 库来处理电子邮件。如何使用 IMAP4.search()?
搜索带有多个参数的消息 例如,查找发件人 "test@testmail.com".
发件人在特定日期后发送的主题为 "Subject" 的所有未读邮件 我有一个想法进行 'one by one' 搜索,我的意思是在前一个结果中使用下一个参数进行搜索,但是:

    typ, data = con.search(None, '(UNSEEN)')

结果存储在列表中,我无法对该列表使用 search() 函数。有什么想法吗?

'UNSEEN FROM "test@testmail.com" SUBJECT "Subject" SINCE 17-may-1814'应该是你想要的。所有这些实际上都是不区分大小写的,大写通常用于关键字但没关系。

您会在 older SO questions about this 中找到很多很多示例。

只是对 arnt 答案的一小部分补充 - 可以使用列表而不是字符串:

    search_list = []
    search_list += ['UNSEEN']
    search_list += ['FROM', '"%s"' % sender_name]
    search_list += ['SUBJECT', '"%s"' % subject]

    typ, data = con.search(None, *search_list)