IMAP获取体太慢了

时间:2013-10-23 22:17:31

标签: python imap imaplib

尝试从IMAP(gmail)收到电子邮件,并在最后一部分中苦苦挣扎。

如果我只获取邮件标题,对于收件箱中的85条邮件,则需要3秒钟:

imap.fetch(message_ids, '(BODY.PEEK[HEADER.FIELDS (FROM TO CC SUBJECT DATE)])')

但如果我尝试获取电子邮件正文,则需要约3分钟:

imap.fetch(message_ids, '(RFC822)')

imap.fetch(message_ids, '(BODY.PEEK[TEXT])')

imap.fetch(message_ids, 'RFC822.TEXT')

已经尝试将TCP_NODELAY设置为此处建议的某些线程。 与imapClient lib和Twisted imap4模块相同的问题

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

所有这些内容都将检索邮件的完整MIME内容,如果它们包含附件,则可能会非常大,并且需要很长时间。

如果您获取BODYSTRUCTURE,您可以解析消息的格式/结构,并在下载之前了解大小,以及主要“正文”部分的确切位置。