2017-03-27 1 views
0

J'utilise EWS pour rechercher et afficher des e-mails. Cependant, la dernière étape du projet consiste à enregistrer des messages spécifiques en tant que fichiers .msg sur le système de fichiers. Je comprends que ce n'est pas possible avec EWS, donc j'aurai besoin d'utiliser Interop.Outlook pour accomplir ceci. Ma question est: Quelle est la meilleure façon de trouver le message Outlook compte tenu des informations disponibles à partir de EWS. J'ai essayé d'associer le Message.Id et ConversationId obtenus à partir de l'échange via EWS avec messageId d'Outlook, mais ont échoué jusqu'ici.en utilisant Interop.outlook et ews

Voici mon code actuel (échec) pour trouver le IDEchange:

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"); 
     } 

Comme un côté: je cherchais une référence pour les filtres Outlookd Ce sont les noms de propriété de la [propriété] = version valeur ; et les valeurs hexadécimales à utiliser avec la version @SQL. Est-ce que quelqu'un a un lien vers une bonne référence pour cela?

Répondre