2011-11-05 51 views
0

我正在尋找使用IMAP獲取郵件大小的最佳方法(我正在爲自己編寫一個簡單的c#lib)。基本上POP3 STAT命令相當於是好的,但它不存在。我正在考慮提取郵件標題並獲取內容長度字段。任何人有更好的主意或解決方案?IMAP命令來獲取消息的大小

回答

2

也許使用FETCH NNN HEADER是做到這一點的唯一方法。你有沒有檢查FETCH NNN RFC822.SIZE的規格?也未嘗不是一個好主意,會從fetchmail日誌學習:

fetchmail: IMAP< * OK GroupWise IMAP4rev1 Server Ready 
fetchmail: IMAP> A0001 CAPABILITY 
fetchmail: IMAP< * CAPABILITY IMAP4rev1 AUTH=XGWTRUSTEDAPP XGWEXTENSIONS 
fetchmail: IMAP< A0001 OK CAPABILITY completed 
fetchmail: IMAP> A0002 LOGIN "user1" * 
fetchmail: IMAP< A0002 OK LOGIN completed 
fetchmail: IMAP> A0003 SELECT "INBOX" 
fetchmail: IMAP< * 260 EXISTS 
fetchmail: IMAP< * 1 RECENT 
fetchmail: IMAP< * OK [UNSEEN 260] 
fetchmail: IMAP< * OK [UIDVALIDITY 1301053702] 
fetchmail: IMAP< * OK [UIDNEXT 545] 
fetchmail: IMAP< * FLAGS (Answered Flagged Deleted Draft Seen) 
fetchmail: IMAP< * OK [PERMANENTFLAGS (Answered Flagged Deleted Draft Seen *)] 
fetchmail: IMAP< A0003 OK [READ-WRITE] SELECT completed 
fetchmail: IMAP> A0004 SEARCH UNSEEN NOT DELETED 
fetchmail: IMAP< * SEARCH 260 
fetchmail: IMAP< A0004 OK SEARCH completed 
260 messages (259 seen) for user1 at host_address. 
skipping message [email protected]_address:1 not flushed 
     { ... etc ... } 
skipping message [email protected]_address:258 not flushed 
skipping message [email protected]_address:259 not flushed 
fetchmail: IMAP> A0005 FETCH 260 RFC822.SIZE 
fetchmail: IMAP< * 260 FETCH (RFC822.SIZE 23853) 
fetchmail: IMAP< A0005 OK FETCH completed 
fetchmail: IMAP> A0006 FETCH 260 RFC822.HEADER 
fetchmail: IMAP< * 260 FETCH (RFC822.HEADER {367} 
fetchmail: IMAP<) 
fetchmail: IMAP< A0006 OK FETCH completed 
fetchmail: IMAP> A0007 FETCH 260 BODY.PEEK[TEXT] 
fetchmail: IMAP< * 260 FETCH (BODY[TEXT] {23486} 
(23486 body octets) ********************* 
fetchmail: IMAP< A0007 OK FETCH completed 
fetchmail: IMAP> A0008 STORE 260 +FLAGS (Seen) 
fetchmail: IMAP< * 260 FETCH (FLAGS (Seen Recent)) 
fetchmail: IMAP< A0008 OK STORE completed 
fetchmail: IMAP> A0009 LOGOUT 
fetchmail: IMAP< * BYE IMAP4rev1 Server Disconnect 
fetchmail: IMAP< A0009 OK LOGOUT completed 
+0

我檢查了IMAP RFC和不知道如何可能會錯過一個:)非常感謝你指着我正確的方向。此外,fetchmail的建議非常好。再次感謝。 – Alex

+0

我有用C++開發的Outlook加載項,我想按大小對郵件進行排序,我該如何使用這種方法? –