Riporto un utile esempio di codice C# per accedere in lettura alle email contenute nella cartella "posta in arrivo" di Outlook 2007 via MAPI. L'unico requisito è chiaramente la la referenza alla dll Microsoft Outlook 12.0 Object Library.
using Microsoft.Office.Interop.Outlook;
...
Application app = new Microsoft.Office.Interop.Outlook.ApplicationClass();
_NameSpace ns = app.GetNamespace("MAPI");
ns.Logon(null, null, false, false);
// Cartella di default: "Posta in arrivo"
MAPIFolder IncomingFolder = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
MailItem item = null;
for (int i = 1; i <= IncomingFolder.Items.Count; i++)
{
item = (MailItem)subFolder.Items[i];
Console.WriteLine("Subject: {0},", item.Subject);
Console.WriteLine("Body: {0}", item.Body);
}
P.S.: può accadere, che in fase di esecuzione venga scatenata la seguente eccezione: System.InvalidCastException: Impossibile eseguire il cast di oggetti COM di tipo 'System.__ComObject' in tipi di interfaccia 'Microsoft.Office.Interop.Outlook.MailItem'....
Dovrei approfondire meglio la questione, tuttavia nel mio caso sono riuscito a risolvere questo tipo di eccezione registrando nuovamente l' assembly (regasm Microsoft.Office.Interop.Outlook.dll)