Se si desidera accedere ai dati di Outlook (ad esempio la posta), è necessario aggiungere un riferimento COM alla libreria di oggetti X.X di Microsoft Outlook.
Per Outlook è possibile utilizzare COM interop. Aprire la finestra di dialogo Aggiungi riferimento e selezionare la scheda .NET, quindi aggiungere un riferimento all'assembly Microsoft.Office.Interop.Outlook.
Poi non dimenticate di aggiungere il namespace "Microsoft.Office.Interop.Outlook" per vostro usando clausole.
Ora è possibile creare un'istanza dell'oggetto applicazione Outlook:
Microsoft.Office.Interop.Outlook.Application outlook;
outlook = new Microsoft.Office.Interop.Outlook.Application();
Diamo eseguire una query sulla vostra casella di posta elettronica:
MAPIFolder folder =
outlook.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);
IEnumerable<MailItem> mail =
folder.Items.OfType<MailItem>().Where(m => m.Subject == "Test").Select(m => m);
È possibile specificare la cartella in cui si desidera effettuare la ricerca come parametro per il metodo GetDefaultFolder (...). È possibile specificare un'altra cartella oltre alla posta in arrivo.
- olFolderSentMail
- olFolderOutbox
- olFolderJunk
- ...
controllare ogni possibile valore su MSDN:
OlDefaultFolders Enumeration
Stefan Cruysbergs ha creato un OutlookProvider component che funge da wrapper per l'oggetto dell'applicazione Outlook. È possibile utilizzare LINQ per interrogare questo fornitore e recuperare dati come contatti, posta ... ecc. Solo il codice download e verificarlo. Questo dovrebbe essere sufficiente per iniziare.
fonte
2012-06-22 18:29:19
hmm questo non è esattamente quello che speravo. Ho familiarità con la creazione di un'istanza di Outlook, questo sembra tornare all'applicazione i risultati della query. Invece, vorrei semplicemente avere Outlook aperto, fornire una query di ricerca dalla mia app, e nell'istanza aperta (o se non aperta, avviare Outlook) mostra i risultati della ricerca dalla query fornita. – ikathegreat