J'écris un client de messagerie en utilisant IMAPClient. Mon but est maintenant de rendre la liste des messages dans mon INBOX. Le nombre de messages s'élève à environ 4 mille. Le problème est qu'il faut les âges pour aller chercher ces lettres comme celle-ci:Python IMAPClient fetch() optimisation de la méthode pour les grandes données
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
Il semble intuitif que je demander, par exemple, les 20 premiers messages, puis si l'utilisateur fait défiler vers le bas, demander le morceau suivant de 20 messages (triés par date de réception de la lettre). En d'autres termes, je devrais en quelque sorte paginer la commande fetch
, ou la rendre paresseuse. Mais IMAPClient semble être silencieux à ce sujet, même si cela semble être un problème majeur. Des idées ?
Vraisemblablement, les messages sont une liste. Brisez-le en sous-listes! – Max