2014-02-11 65 views
7

我想移動消息到另一個文件夾使用的ae.net.mail.IMAP功能的問題是一個郵箱移動的消息,雖然消息被移動到目標文件夾,從INBOX中刪除了而不是無法刪除或通過IMAP

我也有問題刪除消息。在這種情況下,我發現該消息的狀態僅僅從看不見的變爲看到

這是我曾嘗試:

using (ImapClient ic = new ImapClient(
    host, email, password, ImapClient.AuthMethods.Login, 993, true)) 
{ 
    ic.SelectMailbox("INBOX"); 
    string[] uids = ic.Search(SearchCondition.From("[email protected]")); 

    MailMessage[] messages = 
     ic.GetMessages(uids[0], uids[uids.Length - 1], false); 

    ic.MoveMessage(uids[0], "Junk"); 
} 

回答

5

標準的IMAP協議不具有的移動指令(但,增加了它的擴展名)。因此,取決於您的IMAP服務器,客戶端可能需要將MOVE設置爲UID COPY + UID STORE +FLAGS.SILENT (\Deleted) + UID EXPUNGE,但假定服務器支持UIDPLUS擴展。如果服務器不支持UIDPLUS,那麼它基本上不可能正確實現。所有你能做的是COPY + STORE +FLAGS.SILENT (\Deleted)但不能做EXPUNGE,因爲沒有辦法限制將被清除的郵件(我想你可以取消標記任何其他已刪除的郵件,然後選擇EXPUNGE,然後將它們重新標記爲\已刪除,但是開始變得有風險)。

這將解釋爲什麼郵件可能仍然存在於INBOX中(儘管它們至少應標記爲已刪除)。

不確定爲什麼將郵件標記爲已刪除將其標記爲已閱讀。這似乎是AE.NET.Mail中的一個錯誤。

+0

在項目網站上有一個報告的錯誤,https://github.com/andyedinborough/aenetmail/issues/7 – Rafay

+0

@jstedfast。還有一件有趣的事情正在進行。我將消息的標誌設置爲刪除,並猜測它會將狀態從看到的狀態改變爲看不見的狀態。 AE.net.mail – THunter

+1

看起來像AE.NET.Mail不處理未標記的響應它發送的命令: - \ – jstedfast