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

Python IMAPClient fetch()方法对大数据的优化,python,imap,imaplib,imapclient,Python,Imap,Imaplib,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(me

我正在写一个电子邮件客户端使用。我现在的目标是呈现收件箱中的邮件列表。信息的数量大约有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似乎对此保持沉默,尽管这似乎是一个重大问题。有什么想法吗?

你最好的办法是把
消息
分成几块,然后在需要的时候请求消息


<>为了快速建立一个消息列表以显示给用户,您可能首先要考虑对所有消息请求<代码>信封> /代码>。IMAP服务器通常对此进行了优化,
信封
响应比
RFC822
正文[文本]
响应小得多。

消息可能是一个列表。把它分成子列表!