2011-04-12 50 views
1

我想移動從收件箱中的IMAP郵件收件箱/存檔使用Python的imapclient庫,我做的基本上是這樣的:如何在複製後唯一標識IMAP消息?

def archive_message(imap, message_id): 
    imap.copy([message_id], getOptions().imap_archive_folder) 
    imap.delete_messages([message_id]) 

然而,這個失去了我的參考消息。我想要做的是存儲,讓我以後查找該消息的消息的標識符,使用這樣的事情:

def retrieve_message(imap, MYSTICAL_STORED_ID): 
    imap.select_folder(getOptions().imap_archive_folder) 
    return imap.fetch([MYSTICAL_STORED_ID], parts=["RFC822"]) 

應該I /我可以使用什麼ID爲這一點,怎麼會我做這個查找的一部分?

+0

在大多數情況下,服務器將支持'UIDPLUS'擴展名,因此遠程文件夾中副本的新UID是從調用到'imap.copy'的返回值的一部分。 – dkarp 2011-04-13 18:29:36

回答

2

Message-Id標頭中的值應該是每封電子郵件唯一的。

+0

因此,假設我選擇了一個文件夾,這足以識別用於檢索的消息嗎? – 2011-04-12 20:00:41

+0

您*可能*需要掃描文件夾中的相應消息並獲取其索引;我實際上並不知道IMAP。 – 2011-04-12 20:02:23

+0

問題是,您可以在一個文件夾中有單個郵件的多個副本。 (請參閱** imap.copy **?您不必遵循** imap.delete_messages ** ...) – dkarp 2011-04-13 18:27:44