2009-10-23 4 views
15

Stiamo sviluppando un modulo con l'obiettivo principale di tracciare e raccogliere informazioni sulle ispezioni dei danni (mercato assicurativo). Ogni caso ha un codice (ad esempio L000525). Ogni caso potrebbe essere gestito da più persone. Tutte le e-mail relative a un caso specifico includono il codice del caso nell'oggetto.Utilizzo dell'API EWS per cercare tra diverse caselle postali degli utenti

Quello che vogliamo fare è raccogliere e mostrare le e-mail in arrivo e inviate relative a ciascun caso specifico.

L'idea è che qualsiasi utente possa aprire una finestra "Gestione casi", selezionare un caso specifico e quindi ottenere tutte le informazioni correlate (comprese le e-mail ovviamente).

Dobbiamo trovare le e-mail nelle caselle di posta di circa 20 utenti. Quindi le domande sono:

  • Qual è il modo migliore per farlo? Consumerà molto tempo e risorse?

Siamo nuovi nel mondo di Exchange, quindi stiamo pensando alla rappresentazione di Exchange, ma non ne siamo affatto sicuri. Il modulo è sviluppato in Silverlight 3, WCF, SQL Server + Exchange 2007.

risposta

45

Se le credenziali utilizzate per la connessione al server Web incorporato i diritti per accedere alla cassetta postale di un utente allora si dovrebbe essere in grado di fare qualcosa del genere:

var service = new ExchangeService(); 
service.Credentials = new WebCredentials("[email protected]", "password"); 
service.AutodiscoverUrl("[email protected]"); 

var userMailbox = new Mailbox("[email protected]"); 
var folderId = new FolderId(WellKnownFolderName.Inbox, userMailbox); 

var itemView = new ItemView(20); // page size 
var userItems = service.FindItems(folderId, itemView); 

foreach (var item in userItems) 
{ 
    // do something with item (nb: it might not be a message) 
} 

Questo è tutto. Wow, la mia prima risposta SO!

+0

Questo sicuramente mi ha aiutato. Avevo bisogno di ottenere un elenco di tutti gli appuntamenti da calendari condivisi da un singolo accesso. È venuto fuori questo, oltre a impostare le autorizzazioni di "Revisore" su ciascuno dei calendari per il mio login, era tutto ciò che dovevo fare. – cmptrgeekken

+0

In Exchange 2013 (Office 365), l'utente richiede almeno l'autorizzazione 'Dettagli completi'. Limitato o Solo disponibilità non funzionerà. – harsimranb

+1

la classe si chiama FolderId non FolderID, il resto ha funzionato bene. grazie! –