Cómo utilizar WebDAV para que coincida con DAV: href a Outolook interoperabilidad valor href

StackOverflow https://stackoverflow.com/questions/934257

Pregunta

He utilizado anteriormente WebDAV para tener acceso a los mensajes enviados en un servidor de Exchange 2003 basado en el tema y el tiempo y esto ha funcionado.

Ahora que poner en práctica otra de las características que significa arrastrar un mensaje desde la perspectiva del cliente (no acceso a la Web) a un formulario Windows entonces la consulta de WebDAV en el intercambio para obtener toda la información acerca de este mensaje.

puedo conseguir los mensajes href usando el siguiente código:

Dim msg As MAPI.Message = CType(session.GetMessage(mail.EntryID), MAPI.Message)
Dim id as string = CType(CType(msg.Fields(), MAPI.Fields).Item(&H6707001E), MAPI.Field).Value.ToString

Sin embargo, hay dos cuestiones;

1) La codificación de la URL es diferente entre lo que recibo del mensaje arrastrado y lo que se lleva de nuevo a partir de WebDAV (Puedo ver estos si que pido para todo el correo).

2) No importa cómo puedo dar formato a la consulta nunca trae resultados incluso si copio el href de la lista cuando traer de vuelta a todos los mensajes.

Este es un ejemplo de una solicitud de búsqueda que falla (funciona si se quita la cláusula where):

    <?xml version="1.0" ?>
    <D:searchrequest xmlns:D="DAV:">
        <D:sql>SELECT "DAV:contentclass","DAV:href", "DAV:displayname","urn:schemas:httpmail:datereceived","urn:schemas:httpmail:subject" 
FROM "https://server/exchange/mailbox" WHERE "DAV:href"='/Inbox/email.EML'</D:sql>
    </D:searchrequest>

He estado usando la sintaxis relativa como por este artículo pero he probado muchas combinaciones.

¿Fue útil?

Solución

Esto es bastante largo aliento, pero todavía tengo que encontrar una mejor manera de hacer esto:

El Outlook.MailItem.EntryID contiene 4 GUID, aunque no estoy seguro de lo que todo el mapa para. El último GUID contiene la información que está después.

00000000E6053DD369FAB340B6B8C4D77A0
B37D30700173A23D2AA06A3488E75E759DD
1ACBBB00000A6F78CC00007B9F3D877B316
4499DE695FBB7FCDE5F00000 EBD83B9 0000

La parte en negrita es el ID de mensajes que podemos utilizar (de todos los mensajes en mi bandeja de entrada, sólo estos 7 cifras fueron diferentes entre los ID de su entrada).

A continuación, modificar la consulta WebDAV para traer de vuelta a la propiedad DAV:permanenturl. Esto se verá como la siguiente:

https: // nombre_servidor / exchange / BUZÓN @ DOMINIO > COM / -FlatUrlSpace- / 173a23d2aa06a3488e75e759dd1acbbb -a6f78cc / 7b9f3d877b3164499de695fbb7fcde5f- ebd83b9

Así que todo lo que necesita hacer para la coincidencia es hacer una consulta WebDAV para todos los elementos del buzón especificado, bucle a través de la comparación de la PermanentURL con parte de la EntryID a encontrar su pareja.

sería más feliz si había una EntryID en el WebDAV, pero no parece ser un acceso directo.

Otros consejos

Cuando quería encontrar la manera de enviar WebDav a Exchange 2003, disparé hasta Fiddler2 y mire a los mensajes de Outlook Web Access enviaba. Es necesario Fiddler2 si se desea expandir las respuestas https.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top