2011-05-12 47 views
4

我使用下面的代碼獲取未讀的郵件從Outlook中查看未讀郵件 ,一切都默認收件箱文件夾如何從特定文件夾

Microsoft.Office.Interop.Outlook.Application oApp; 
    Microsoft.Office.Interop.Outlook._NameSpace oNS; 
    Microsoft.Office.Interop.Outlook.MAPIFolder oFolder; 
    Microsoft.Office.Interop.Outlook._Explorer oExp; 

    oApp = new Microsoft.Office.Interop.Outlook.Application(); 
    oNS = (Microsoft.Office.Interop.Outlook._NameSpace)oApp.GetNamespace("MAPI"); 

    oFolder = oNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox); 
    oExp = oFolder.GetExplorer(false); 
    oNS.Logon(Missing.Value, Missing.Value, false, true); 
    Microsoft.Office.Interop.Outlook.Items items = oFolder.Items; 

    foreach (Object mail in items) 
    { 
     if ((mail as Microsoft.Office.Interop.Outlook.MailItem) != null && (mail as Microsoft.Office.Interop.Outlook.MailItem).UnRead == true) 
     { 
      string sasd= (mail as OutLook.MailItem).Subject.ToString(); 

     } 
    } 

工作正常,但我要檢查其他文件夾[我已經創建了[Name =「Inbox_Personal」]]。我怎樣才能做到這一點?

編輯1

任何建議或參考教程將不勝感激。

回答

0
var fld = (Outlook.Folder)app.Session.GetFolderFromID("Inbox_Personal", storeID); 

我不記得從哪裏獲取商店ID,但應該存儲在您的會話對象或默認文件夾對象中。

編輯 我已經在一個項目中查找現在:GetFolderFromID中的StoreID是可選的(Type.Missing)。

默認存儲ID可以在這裏找到:

app.Session.DefaultStore.StoreID 

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook._namespace.defaultstore(v=office.12).aspx

+0

我被困在商店ID ... :-( – Chris

+0

我沒有得到oApp.Session的DefaultStore屬性。 – Chris

+0

應該在那裏。或者在沒有DefaultStoreID的情況下嘗試 – Arthur

3

我用類似以下在Outlook訪問不同的帳戶(2007年和更大;在此之前不存在,則2007個店只需要看看文件夾)

Microsoft.Office.Interop.Outlook.Application oApp; 
Microsoft.Office.Interop.Outlook.NameSapce oNS = oApp.GetNameSpace(「Mapi」); 
foreach(Microsoft.Office.Interop.Outlook.Store oAccounts in oNS.Stores) 
{ 
    // get the right account: 
    Microsoft.Office.Interop.Outlook.Store oDesiredAccount; 
    foreach(Microsoft.Office.Interop.Outlook.Store oAccount in oAccounts) 
    { 
     if(oAccount.DisplayName.ToLower.Equals(「<<Name of Account>>」) 
     { 
      oDesiredAccount = oAccount; 
     } 
    } 

    // do stuff with the account 
    Microsoft.Office.Interop.Outlook.MAPIFolder root = oAccount.GetRootFolder(); 
    // .... 
} 
相關問題