vba - vscode
Recuperando todos los mensajes de Outlook en el mismo hilo (2)
Estamos construyendo una especie de sistema de gestión de la comunicación sobre Outlook. Una de las tareas importantes que deseamos lograr es recuperar todos los mensajes (archivos .msg) en el mismo hilo junto con sus archivos adjuntos y colocarlos en la misma carpeta dentro del repositorio de CMS.
El problema al que nos enfrentamos es ¿cómo sabemos programáticamente que ese mensaje en particular (o el archivo .msg?) Y el archivo adjunto pertenecen al hilo en particular.
Digamos por un primer mensaje que creamos una carpeta en un repositorio. Luego queremos que todos los mensajes (junto con los adjuntos) se envíen como respuesta al mensaje original para que se envíen automáticamente a la misma carpeta.
Traté de encontrar si hay un encabezado en el archivo .msg para identificar el hilo, pero no encontré nada.
Pero sigue siendo curioso cómo el cliente de Outlook puede mostrar los mensajes ordenados como jerarquía del hilo de comunicación. Entonces debe haber alguna manera de que podamos recuperar esta información almacenada en alguna parte. Solo quiero saber cómo puedo acceder a él.
La conservación agrupada se indica en el encabezado del mensaje: "Message-ID:", "References:" & "In-Reply-To:", puede verlo con Outlook VBA con la siguiente función que encontré anteriormente.
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
Utilice la propiedad PR_CONVERSATION_INDEX (puede verla en OutlookSpy si hace clic en el botón IMessage)
El seguimiento de la conversación está documentado en MSDN: http://msdn.microsoft.com/en-us/library/office/cc765583.aspx