【发布时间】:2013-11-02 10:00:47
【问题描述】:
尝试从 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 模块存在同样的问题
有什么想法吗?
【问题讨论】:
-
你的身体有大附件吗?下载标头很快,因为没有太多数据,但是如果您有很多 20 mb 的消息,可能需要一段时间......也许您应该获取 bodystructure 以便您可以找出主要部分,以及它有多大。
-
谢谢!必须单独查看 bodystructure 并获取 headers 和 body。我以为 BODY[TEXT] 只会带来正文的文本内容,必须获取 BODY[1]
-
很高兴能帮上忙。我会将我的评论重新排列成答案,以便您接受。