针对大型数据的Python IMAPClient fetch()方法优化

2024-05-21 06:06:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用IMAPClient编写电子邮件客户端。我现在的目标是呈现收件箱中的邮件列表。消息的数量大约有4000条。问题是,像这样的信件要花很长时间才能拿到:

server = IMAPClient(HOST, use_uid=True, ssl=True)
server.login(USERNAME, PASSWORD)    
server.select_folder('INBOX')
messages = server.search(['NOT DELETED'])
response = server.fetch(messages, ['RFC822', 'BODY[TEXT]']) # TAKES AGES TO FINISH

我应该请求,比如说,前20条消息,然后如果用户向下滚动,请求下一块20条消息(按收到信件的日期排序)。换句话说,我应该以某种方式将fetch命令分页,或者使其变懒。但IMAPClient似乎对此保持沉默,尽管这似乎是一个重大问题。有什么想法吗?在


Tags: truehost消息客户端目标列表数量server
1条回答
网友
1楼 · 发布于 2024-05-21 06:06:45

最好的办法是将messages分成块,然后请求您当时需要的消息。在

为了快速构建一个消息列表以显示给用户,您可能需要考虑先为所有消息请求ENVELOPE。IMAP服务器通常对此进行了优化,ENVELOPE响应比RFC822或{}响应小得多。在

相关问题 更多 >