2013-08-21 2 views
1

Nous construisons une sorte de système de gestion de communication sur Outlook. L'une des tâches importantes que nous souhaitons accomplir est de récupérer tous les messages (fichiers .msg ??) dans le même thread avec leurs pièces jointes et de les placer dans le même dossier dans le référentiel de CMS.Récupération de tous les messages Outlook dans le même thread

Le problème que nous sommes confrontés est de savoir comment savons-nous par programmation ce message particulier (ou fichier .msg ??) et la pièce jointe appartient à la discussion particulière.

Dites pour un premier message que nous créons un dossier dans un référentiel. Ensuite, nous voulons que tous les messages (ainsi que les pièces jointes) envoyés en réponse au message d'origine soient automatiquement placés dans le même dossier.

J'ai essayé de trouver si leur en-tête est défini dans le fichier .msg pour identifier le thread, mais n'a rien trouvé.

Mais toujours curieux comment le client Outlook peut montrer les messages disposés en tant que hiérarchie de fil de communication. Il doit donc y avoir un moyen de récupérer cette information stockée quelque part. Je veux juste savoir comment je peux y accéder.

+0

je crois que Outlook utilise le texte dans le message Sous réserve des e-mails de groupe à conversations. Comme il a regroupé des e-mails non pertinents avec des e-mails vierges dans mon Outlook 2010. – PatricK

+0

vous voulez donc dire que si nous modifions la ligne d'objet tout en écrivant la réponse, il ne regroupera pas cette réponse particulière sous le même fil? – Mahesha999

+0

Il ne s'est pas groupé lorsque j'ai répondu avec le changement de texte du sujet. Mais quand je change le sujet de la réponse changée, il ne l'a pas regroupé au premier. La logique peut être que si le sujet actuel est différent du sujet dans la réponse, il le traitera comme une nouvelle conservation. – PatricK

Répondre

0

Utilisez la propriété PR_CONVERSATION_INDEX (vous pouvez le voir dans OutlookSpy si vous cliquez sur le bouton iMessage)
suivi de conversation est documenté sur MSDN: http://msdn.microsoft.com/en-us/library/office/cc765583.aspx

+0

Salut, désolé pour la réponse tardive je jouais avec ce que vous m'avez indiqué, et il semble fonctionner. Cependant, pouvez-vous simplement expliquer où est stocké ce 'PR_CONVERSATION_INDEX'? Dans le fichier '.msg'? Sur le serveur d'échange/client d'Outlook? Je veux juste savoir si je peux accéder à cette même propriété en utilisant une bibliothèque Java. – Mahesha999

+0

PR_CONVERSATION_INDEX est l'une des propriétés MAPI. Vous pouvez le voir dans OutlookSpy (http://www.dimastr.com/outspy) - cliquez sur le bouton IMessage. –

+0

Donc, ce n'est pas stocké dans le fichier '.msg'? Ou dans certains fichiers cryptés Outlook? ou en échange de serveur? Je pourrais sembler stupide ici. Mais ** veut vraiment savoir sur le stockage physique et pas seulement sur la façon d'y accéder **. Également je suis nouveau à MAPI donc ne sais pas où ces propriétés MAPI sont réellement stockées et récupérées à partir de ...... – Mahesha999

1

La conservation groupée est indiquée dans l'en-tête du message: "Message-ID:", "Références:" & "In-Reply-To:", vous pouvez l'afficher avec Outlook VBA avec la fonction ci-dessous trouvée précédemment.

Private Function GetInetHeaders(olkMsg As Outlook.MailItem) As String 
    ' Purpose: Returns the internet headers of a message.' 
    ' Written: 4/28/2009' 
    ' Author: BlueDevilFan' 
    ' Outlook: 2007' 
    Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001E" 
    Dim olkPA As Outlook.PropertyAccessor 
    Set olkPA = olkMsg.PropertyAccessor 
    GetInetHeaders = olkPA.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS) 
    Set olkPA = Nothing 
End Function 
+0

hey je vais essayer cela et je reviendrai, mais peut prendre un certain temps depuis que mon environnement est soudainement tombé – Mahesha999

Questions connexes