Exchange server 使用WebDav删除Exchange 2003电子邮件
我正在尝试使用C应用程序中的webdav自动管理Exchange2003中的收件箱。查看msdn并没有像这里描述的方法那样对我有很大帮助http://msdn.microsoft.com/en-us/library/aa142917.aspx 与我发现的样品完全不符。所以我想确定两件事: 从webdav查询返回的所有字段的Exchange server 使用WebDav删除Exchange 2003电子邮件,exchange-server,webdav,Exchange Server,Webdav,我正在尝试使用C应用程序中的webdav自动管理Exchange2003中的收件箱。查看msdn并没有像这里描述的方法那样对我有很大帮助http://msdn.microsoft.com/en-us/library/aa142917.aspx 与我发现的样品完全不符。所以我想确定两件事: 从webdav查询返回的所有字段的 string reqStr = @"<?xml version=""1.0""?> <g:s
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并没有收获。在响应中查找dav:hef标签。它们包含一个url,您可以使用该url发出删除命令。从获取消息Uri的查询结果中,然后:
嗯,我已经确定这绝对不会起作用,我从服务器收到了400个错误的请求。我仍然需要一种方法来删除个人电子邮件。请看,好的,我看到这个带有URL。我将如何制定删除规则?除了WHERE子句用于DAV:ID='urlstring'之外,它是否与上面相同?我想作为后续,我是否需要做些什么来清理WHERE=404的节点?似乎每200就有一个404。您只需向url发出HTTP DELETE命令。没别的了。对于不存在的属性,您会得到404错误。别理他们。
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
}