尝试从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模块相同的问题
有什么想法吗?
答案 0 :(得分:1)
所有这些内容都将检索邮件的完整MIME内容,如果它们包含附件,则可能会非常大,并且需要很长时间。
如果您获取BODYSTRUCTURE
,您可以解析消息的格式/结构,并在下载之前了解大小,以及主要“正文”部分的确切位置。