2016-06-10 101 views
1

我對Outlook編程非常陌生。C#:在特定的Outlook郵箱中環回未讀郵件

我有一個郵箱讓我們說我的Outlook中的「ImportantMail」。

我正在開發一個Windows窗體應用程序,它應該找到該郵箱中的所有未讀郵件,並通過它們訪問主題,發件人&內容。

有沒有一些簡單的方法來實現這一點?

我試過以下多個教程,我發現,但它是像我這樣的新鮮太混亂了......事先

謝謝!

回答

2

我在我的案例中倒退了,因爲我正在移動郵件項目,所以爲了使這項工作你需要反向進行,然而..這真的不是一個困難的事情 - 解決會議要求等。 。

for (int t = objFolder.Items.Count; t >= 1; t--) 
{ 
    try 
    { 
     if (!(objFolder.Items[t] is MailItem)) continue; 
     MailItem m = objFolder.Items[t]; 
     if (m.Unread) { do_stuff(); } 
    } 
    catch { } 
} 
+1

永遠不要遍歷文件夾中的所有項目,這是非常低效的。使用Items.Find/FindNext或Items.Restrict –

+0

使用多點符號(objFolder.Items.Count和objFolder.Items [t]等效於objFolder.Items.Item(t)))是另一個問題。 –

+0

就我而言,我實際上必須閱讀所有郵件然後移動它們,所以這對我正在做的事情是有效的。因此它在我的答案。我沒有聲稱這是最高效的,只是做 – BugFinder

0

如果ImportantMail郵箱已經在當前的配置文件,檢索來自Application.Session.Stores集合存儲和調用Store.GetDefaultFolder(olFolderInbox)。如果它是尚未在當前配置文件中的Exchange委託商店,請致電Application.Session.CreateRecipient,然後Application.Session.GetSharedDefaultFolder(..., olFolderInbox)

讀取MAPIFolder.Items屬性,然後使用Items.Find/FindNext或Items.Restrict,查詢如[Unread] = true

相關問題