2013-02-16 194 views
1

如何在不必向電子郵件服務器發送多個IMAP請求的情況下從我的Gmail收件箱中分揀並檢索最大的電子郵件?例如,如果我的gmail帳戶有10,000條消息,則代碼不應發送10,000個IMAP請求來查找每條消息的大小。有什麼想法嗎?從收件箱中檢索最大的電子郵件Python

+0

僅供參考,Gmail不支持在IMAPCLient包排序功能..尋找另一種方式.. – CarbonD1225 2013-02-16 22:20:41

回答

2

對您有幫助嗎?它只需幾百條消息即可快速返回。

import imaplib 
mail = imaplib.IMAP4_SSL('imap.gmail.com') 
mail.login('[email protected]', '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)',.... 
+0

如果我正確理解這一點,這不是發送多個向服務器提取請求?所以基本上如果我有10,000條消息,它會發送10,000'fetch'請求嗎?因此它不可擴展..我是對的嗎? – CarbonD1225 2013-02-16 23:21:31

+0

我真的不知道我以爲它是發送命令到Imap服務器。說取得所有消息的大小。我會搜索Google使用RFC822.SIZE。這些代碼也很容易爲你測試。 – sotapme 2013-02-16 23:29:10

+0

也許你是對的,我會試着研究它。謝謝! – CarbonD1225 2013-02-16 23:30:18

相關問題