Je suis en train de construire une application qui analyse les messages électroniques Outlook, stocke les informations analysées, et permet ensuite à l'utilisateur d'ouvrir des messages répondant à certains critères. Je m'attendais à extraire l'identificateur de message de chaque courrier électronique, à le stocker dans ma base de données, puis à demander à Outlook d'ouvrir un message en lui fournissant l'identificateur de message ultérieurement. Cependant, il semblerait que je manque quelque chose.Comment puis-je accéder à un message Outlook en utilisant un identifiant unique et stable?
Via les API d'interopérabilité Outlook, je peux obtenir un EntryID, mais pour autant que je sache, un EntryID est seulement garanti stable dans un dossier donné (ou peut-être un magasin donné). Si un message est déplacé vers un dossier différent, l'EntryID peut changer. En outre, les API requièrent que StoreID soit fourni lors de la recherche d'un message par EntryID. Encore une fois, si un message est déplacé entre les magasins, cette information sera vraisemblablement invalide.
J'ai vu beaucoup de produits liés à Office qui semblent faire quelque chose comme ce que j'ai décrit ci-dessus. Comment puis-je effectuer une recherche efficace d'un message accessible à Outlook, quels que soient les magasins, etc.? Actuellement, mon plan de sauvegarde consiste à stocker les informations EntryID et StoreID pour chaque ID de message que j'analyse, puis à essayer tous les différents combos EntryID/StoreID que j'ai enregistrés pour un MessageID donné jusqu'à ce que l'un soit réussi . Mais cela semble être un travail qu'Outlook devrait déjà savoir accomplir pour moi.
Merci,
-Patrick
J'ai déjà d'autres besoins pour une base de données séparée, donc les détails de l'endroit où je stocke un mappage Message-ID => List est quelque peu arbitraire. En outre, les messages électroniques ont déjà un GUID - la valeur de leur en-tête Message-ID. Mon dilemme est que je ne vois aucun moyen évident de rechercher un objet Outlook MailItem avec un GUID. –
Ok, je vois que j'ai mal compris votre question, alors ma réponse était complètement fausse. Je l'ai édité; J'espère que ça aide maintenant. –
Je stocke plusieurs paires StoreId/EntryID en ce moment au cas où je manquerais un événement qui provoque le déplacement d'un message.Par exemple, si un message est déplacé dans une boîte aux lettres Exchange côté serveur, je m'attends à le récupérer au nouvel emplacement dans une nouvelle notification d'événement de message, mais je n'ai pas testé si oui ou non je recevrais une notification de d'où il a été déplacé. En outre, un message avec un ID donné peut être copié dans plusieurs boîtes aux lettres; ils sont toujours le même message (puisque les articles de courrier sont immuables par nature). –