Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中进行常规电子邮件搜索_Python_Email_Outlook_Imap_Imaplib - Fatal编程技术网

如何在python中进行常规电子邮件搜索

如何在python中进行常规电子邮件搜索,python,email,outlook,imap,imaplib,Python,Email,Outlook,Imap,Imaplib,在imaplib中,mail.search需要标准,请参阅文档和标准选项 但是,我需要能够使用更通用的搜索。一组文件由不同的发件人发送,具有不同的文件名。在outlook中,我可以键入.xlsx来查找任何带有附件或.xlsx的电子邮件。还有,搜索'username@domain.com'将返回所有发送给、来自或正在发送的电子邮件。如何使用imap在python中构建类似的搜索函数 对于这个特定的构建,应该可以使用嵌套的if、else和try块。但是我在寻找更一般化的方法,看看是否有更好的方法 如

在imaplib中,mail.search需要标准,请参阅文档和标准选项

但是,我需要能够使用更通用的搜索。一组文件由不同的发件人发送,具有不同的文件名。在outlook中,我可以键入.xlsx来查找任何带有附件或.xlsx的电子邮件。还有,搜索'username@domain.com'将返回所有发送给、来自或正在发送的电子邮件。如何使用imap在python中构建类似的搜索函数

对于这个特定的构建,应该可以使用嵌套的if、else和try块。但是我在寻找更一般化的方法,看看是否有更好的方法

如果没有,我想完成什么

提供两封电子邮件,必须以发件人或抄送方式发送,但不能同时以发件人1和发件人2的cced方式发送(有时从发件人1发送,有时从发件人1发送到发件人2,然后由发件人转发给我的团队)。需要附加一个.xlsx文件。

Lib实现rfc3501中描述的所有搜索逻辑

您可以单独使用imap_工具本身及其查询生成器

例如:

import datetime
from imap_tools import MailBox, OR
with MailBox('imap.mail.com').login('test@mail.com', 'password', 'INBOX') as mailbox:
    for msg in mailbox.fetch(OR(text='hello', date=datetime.date(2000, 3, 15))):
        print(msg.uid, msg.subject)

有关更多信息,请参阅lib docs。

IMAP搜索没有那么灵活。您应该从执行
UID SEARCH BODY“.xlsx”
开始,看看它是否会进行部分匹配以查找xlsx文件。