【问题标题】:Retrieving the largest email from inbox Python从收件箱 Python 中检索最大的电子邮件
【发布时间】:2013-02-01 15:52:27
【问题描述】:

如何从我的 Gmail 收件箱中分类和检索最大的电子邮件,而无需向电子邮件服务器发送多个 IMAP 请求?例如,如果我的 gmail 帐户有 10,000 条消息,则代码不应发送 10,000 个 IMAP 请求来找出每条消息的大小。有什么想法吗?

【问题讨论】:

  • 仅供参考,Gmail 不支持 IMAPCLient 包中的排序功能.. 寻找另一种方式..

标签: python imaplib


【解决方案1】:

这有用吗?它返回的速度足够快,只有几百条消息。

import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('me@gmail.com', 'SECRET)

resp,data = mail.uid('FETCH', '1:*' , '(RFC822.SIZE)')
print data

给予:

['1 (UID 1 RFC822.SIZE 6383)', '2 (UID 2 RFC822.SIZE 35641)', '3 (UID 3 RFC822.SIZE 4787)',....

【讨论】:

  • 如果我理解正确,这不是向服务器发送多个fetch 请求吗?所以基本上如果我有 10,000 条消息,它会发送 10,000 个 fetch 请求,对吗?因此它不可扩展。我说的对吗?
  • 我真的不确定我是否认为它正在向 Imap 服务器发送命令。说获取所有消息的大小。我会在 Google 上搜索 RFC822.SIZE 的用法。此外,这段代码很容易为您测试。
  • stackoverflow.com/questions/8023723/… 是我的第一个命中 - fetchmail 正在使用它。我会吮吸它,看看是不是我。
  • 阅读 tools.ietf.org/html/rfc3501 可能会有所帮助,如果您是那种能够了解规格的人。
猜你喜欢
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 2017-12-21
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
  • 1970-01-01
相关资源
最近更新 更多