Удаление сообщений Exchange 2003 с помощью WebDav - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь автоматически управлять папкой «Входящие» в Exchange 2003, используя webdav из приложения C #.Глядя на msdn мне не очень помогает, так как методы, описанные здесь (http://msdn.microsoft.com/en-us/library/aa142917.aspx) не совпадают вообще с образцами, которые я нашел в противном случае. Поэтому я пытаюсь определить две вещи:

Ofвсе поля, которые возвращаются из запроса webdav

string reqStr =
                @"<?xml version=""1.0""?>
                <g:searchrequest xmlns:g=""DAV:"">
                    <g:sql>
                        SELECT
                            *
                        FROM
                            ""http://server/Exchange/email1@domain.com/Inbox/""
                        WHERE ""urn:schemas:mailheader:from"" = 'email2@domain.com'
                        </g:sql>
                </g:searchrequest>";

Какой из них является уникальным идентификатором? Я просмотрел его (но не уверен в ссылке для проверки полей), и на первый взгляд кажется, что DAV:id - это то, что я хочу (), но я не хочу работать над предположениями.

Во-вторых, как правильно программно удалить письмо после его обработки? Хотелось бы что-то вроде следующей работы (будетэто удаляет запись и все связанные метаданные). Я не хочу, чтобы какие-либо файлы оставались осиротевшими на сервере ...

string reqStr =
                @"<?xml version=""1.0""?>
                <g:searchrequest xmlns:g=""DAV:"">
                    <g:sql>
                        DELETE
                        FROM
                            ""http://server/Exchange/email1@domain.com/Inbox/""
                        WHERE ""DAV:id"" = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'                                                       
                        </g:sql>
                </g:searchrequest>";

И, наконец, каковы лучшие онлайн-источники для исследования всех данных, возвращенных вXML из первого запроса и где задокументированы все параметры для управления интерфейсом webdav? Глядя на MSDN просто не удалосьtful.

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Найдите тег dav: hef tags в ответе. Они содержат URL, который вы можете использовать для выдачи команды удаления.

0 голосов
/ 04 августа 2014

Из результата запроса, который возвращает вам сообщение Uri:

var request = (HttpWebRequest)WebRequest.Create(mail.MailUri);
request.Credentials = _credential;
request.Method = "DELETE";

var response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.OK)
{
   //something might of broke
}
...