2017-03-27 6 views
0

Ich benutze EWS für die Suche und Anzeige von E-Mails. Der letzte Schritt des Projekts besteht jedoch darin, bestimmte Nachrichten als .msg-Dateien im Dateisystem zu speichern. Ich verstehe, dass dies mit EWS nicht möglich ist, deshalb muss ich Interop.Outlook verwenden, um dies zu erreichen. Meine Frage ist: Was ist der beste Weg, um die Outlook-Nachricht angesichts der Informationen von EWS zu finden. Ich habe versucht, die Message.Id und ConversationId, die aus Exchange über EWS abgerufen werden, mit der MessageId von Outlook zu verknüpfen, aber war bisher nicht erfolgreich.mit Interop.outlook und ews

Hier ist mein aktueller (nicht) Code der ConversationId für die Suche:

OUTLOOK.Application olApp = new OUTLOOK.Application(); 
     OUTLOOK.NameSpace olNS = olApp.GetNamespace("MAPI"); 
     OUTLOOK.MAPIFolder oFolder = olNS.GetDefaultFolder(OUTLOOK.OlDefaultFolders.olFolderInbox); 
     OUTLOOK.Items oItems = oFolder.Items; 
     String sFilter = string.Format("@SQL=\"http://schemas.microsoft.com/mapi/proptag/0x1035001F\" = '{0}'", missive.ConversationID.UniqueId); 
     object obj = oItems.Find(sFilter); 
     OUTLOOK.MailItem oEmail = (OUTLOOK.MailItem)obj; 
     if (oEmail != null) 
     { 
      return oEmail; 
     } 
     else 
     { 
      throw new Exception("MAIL ITEM NOT IN OUTLOOK"); 
     } 

Als Seite: Ich war für Outlookd Filter für eine Referenz suchen, dass die Eigenschaftsnamen für die [property] = Wert Version ; und die Hex-Werte für die Verwendung mit der @ SQL-Version. Hat jemand einen Link zu einer guten Referenz dafür?

Antwort