1

尝试从 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 模块存在同样的问题

有什么想法吗?

4

1 回答 1

2

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

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

于 2013-10-24T19:35:17.983 回答