2011-12-03 20 views
10

Sto usando il seguente codice mentre tento di connettermi alla posta di Outlook. Ora, devo fare qualcosa di sbagliato perché cerco di ottenere la posta in arrivo e ottengo sempre 0 mail (quando questo non è il caso). Questo è il mio codiceLettura posta di Outlook con C#

Microsoft.Office.Interop.Outlook.NameSpace nameSpace = application.GetNamespace("MAPI"); 
nameSpace.Logon("", "", Missing.Value, Missing.Value); 

inboxFolder = nameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox); 
Console.WriteLine("Folders: {0}", inboxFolder.Folders.Count); 

Ho diversi account di posta elettronica nel mio profilo di Outlook. Quando scrivo la seguente

Console.WriteLine("Accounts: {0}",nameSpace.Accounts.Count); 
Console.WriteLine("Name: {0}", nameSpace.Accounts[1].DisplayName); 

viene visualizzato il numero totale di conti in modo corretto, e così è il nome dell'account che voglio veramente l'accesso (indice 1). Ora, il problema è che ho bisogno di accedere a una cartella specifica all'interno di quell'account. Come faccio a fare questo?

risposta

16

Potrei risolvere questo! In realtà era abbastanza facile. Ecco come ho potuto accedere alla cartella desiderata:

// [email protected] is the name of my account 
// Unsent mails is the name of the folder I wanted to access 
inboxFolder = nameSpace.Folders["[email protected]"].Folders["Unsent mails"]; 

foreach (Microsoft.Office.Interop.Outlook.MailItem mailItem in inboxFolder.Items) 
{ 
    if (mailItem.UnRead) // I only process the mail if unread 
    { 
     Console.WriteLine("Accounts: {0}", mailItem.Body); 
    }  
} 
Problemi correlati