我試圖用InterIMAP標記讀取(/ SEEN)的電子郵件,但這不起作用。我用調試器遍歷代碼,發現郵件服務器的響應是「IMAP0078確定存儲被只讀郵箱忽略。」,這幾乎告訴我爲什麼它不起作用。但它看起來像沒有辦法告訴InterIMAP以讀寫方式打開連接。如果我使用Thunderbird之類的東西,我可以將消息設置爲已讀。無法標記使用InterIMAP讀取的電子郵件,文件夾爲只讀
有誰知道我應該如何使用InterIMAP來實現我想要的,或者如何更改源代碼,以便能夠將消息標記爲已讀?
我試圖用InterIMAP標記讀取(/ SEEN)的電子郵件,但這不起作用。我用調試器遍歷代碼,發現郵件服務器的響應是「IMAP0078確定存儲被只讀郵箱忽略。」,這幾乎告訴我爲什麼它不起作用。但它看起來像沒有辦法告訴InterIMAP以讀寫方式打開連接。如果我使用Thunderbird之類的東西,我可以將消息設置爲已讀。無法標記使用InterIMAP讀取的電子郵件,文件夾爲只讀
有誰知道我應該如何使用InterIMAP來實現我想要的,或者如何更改源代碼,以便能夠將消息標記爲已讀?
我是能夠解決的情況有以下變化Imap.cs
public void MarkMessageAsRead(IMAPMessage msg)
{
string cmd = "UID STORE {0} +FLAGS (\\Seen)\r\n";
ArrayList result = new ArrayList();
SendAndReceive(String.Format(cmd, msg.Uid), ref result);
if (result[0].ToString().ToLower().Contains("ok"))
msg.Flags.New = false;
}
改爲
public void MarkMessageAsRead(IMAPMessage msg)
{
msg.Folder.Select();
string cmd = "UID STORE {0} +FLAGS (\\Seen)\r\n";
ArrayList result = new ArrayList();
SendAndReceive(String.Format(cmd, msg.Uid), ref result);
if (result[0].ToString().ToLower().Contains("ok"))
msg.Flags.New = false;
msg.Folder.Examine();
}
不知道這是要解決我的問題最徹底的方法,但它的有總比沒有好。
上一頁下一頁最後一頁IMAP GMAIL!
public void DeleteMail(IMAPMessage msg)
{
msg.Folder.Select();
string cmd = "UID STORE {0} +FLAGS (\\Deleted \\Seen)\r\n";
ArrayList result = new ArrayList();
SendAndReceive(String.Format(cmd, msg.Uid), ref result);
int countResult = result.Count - 1;
while (countResult >= 0)
{
if (result[countResult].ToString().ToLower().Contains("ok"))
{
msg.Flags.New = false;
msg.Flags.Deleted = true;
string cmd2 = "EXPUNGE\r\n";
ArrayList result2 = new ArrayList();
SendAndReceive(String.Format(cmd2, msg.Uid), ref result2);
if (result2[0].ToString().ToLower().Contains("ok"))
{
//Deu certo!!
msg.Folder.Examine();
}
}
countResult--;
}
}
歡迎來到StackOverflow!大多數SO用戶通常使用和理解的語言是英語。因此,請嘗試用英文解釋您的答案,以便對非西班牙語(?)用戶也有用。 – 2016-03-23 01:44:16
看起來問題的原因是使用「EXAMINE」命令而不是「SELECT」命令打開郵箱(=文件夾)。這些IMAP命令非常相似 - 主要區別在於「EXAMINE」以只讀模式打開文件夾。我對InterIMAP不熟悉,但如果您在調用MarkMessagesAsRead方法之前能夠使用「SELECT」而不是「EXAMINE」,則不再需要此修復。 – 2010-03-24 10:46:50