2012-06-22 8 views
6

Ciao mi chiedo se è possibile inviare una query di ricerca a Outlook 2010 dalla mia app WinForms. Cioè, non cercare il file .PST come ho cercato e trovare, sto cercando di visualizzare un elenco di risultati in Outlook come se avessi digitato nella casella di ricerca.Esegui query di ricerca in Outlook

Se possibile, qualsiasi codice di esempio sarebbe utile. Inoltre, è possibile eseguire direttamente una ricerca in Tutti gli articoli di posta contro, di solito quando fai una ricerca combina la cartella corrente. Grazie.

risposta

8

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.

enter image description here

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.

+1

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

Problemi correlati