Как использовать WebDav для сопоставления значения dav: href и Outolook Interop href

Ранее я использовал webdav для доступа к отправленным сообщениям на сервере Exchange 2003 в зависимости от темы и времени, и это сработало.

Теперь мне нужно реализовать еще одну функцию, которая означает перетаскивание сообщения из внешнего вида клиента (не через веб-доступ) в форму окна, а затем запрашивание webdav при обмене для получения всей информации об этом сообщении.

Я могу получить сообщения, используя следующий код:

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

Однако есть две проблемы;

1) Кодировка в URL отличается от того, что я получаю из перетаскиваемого сообщения, и от того, что возвращается из webdav (я могу видеть это, если я прошу всю почту).

2) Независимо от того, как я форматирую запрос, он никогда не возвращает результаты, даже если я копирую href из списка, когда возвращаю все сообщения.

Вот пример поискового запроса, который не выполняется (работает, если вы удалите предложение 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>

Я использовал относительный синтаксис согласноэта статья но перепробовал много комбинаций.

Ответы на вопрос(2)

Ваш ответ на вопрос