1
有沒有一種方法可以將IMAP文件夾中的消息用Python標記到custome標記中?像湯姆斯郵件,約翰的除草廢話等等?通過python在IMAP中自定義標記消息
有沒有一種方法可以將IMAP文件夾中的消息用Python標記到custome標記中?像湯姆斯郵件,約翰的除草廢話等等?通過python在IMAP中自定義標記消息
Cyrus IMAP server支持用戶定義的消息標誌(又名標籤,標籤,關鍵字),您可以使用Alpine mail client進行標籤實驗。在Alpine中選擇(S)etup
- >(C)onfig
,向下滾動到keywords
部分並輸入所需標誌名稱的列表。
要設置來自Python的消息標誌,您可以使用標準的imaplib模塊。下面是一個消息設置標誌的例子:
import imaplib
im = imaplib.IMAP4(hostname)
im.login(user, password)
im.select('INBOX')
# you can use im.search() to obtain message ids
msg_ids = '1, 4, 7'
labels = ['foo', 'bar', 'baz']
# add the flags to the message
im.store(msg_ids, '+FLAGS', '(%s)' % ' '.join(labels))
# fetch and print to verify the flags
print im.fetch(ids, '(FLAGS)')
im.close()
im.logout()
有一點要記住的是,發送到服務器的標誌不包含空格。如果您發送+FLAGS (foo bar)
到服務器,這將設置兩個標誌foo
和bar
。像Alpine這樣的客戶可以讓你輸入帶空格的標誌,但只會將最後一個非空格部分發送給服務器 - 它把它看作是一個唯一的標識符。如果您指定標記abc 123
它將在消息上設置123
,並在消息視圖中顯示abc
。
[IMAP RFC](http://tools.ietf.org/html/rfc3501#section-2.3.2)指定客戶端可以設置自己的標誌,但不管服務器是否保留他們支持任意標誌。 – sarnold 2011-05-27 23:45:08
看看http://imapclient.freshfoo.com/。我不知道它是否滿足你的需求,因爲我不確定你想要做什麼。它可能有些用處。 – 2011-05-27 23:54:41