Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/twitter-bootstrap/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exchange server 使用WebDav删除Exchange 2003电子邮件_Exchange Server_Webdav - Fatal编程技术网

Exchange server 使用WebDav删除Exchange 2003电子邮件

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

我正在尝试使用C应用程序中的webdav自动管理Exchange2003中的收件箱。查看msdn并没有像这里描述的方法那样对我有很大帮助http://msdn.microsoft.com/en-us/library/aa142917.aspx 与我发现的样品完全不符。所以我想确定两件事:

从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并没有收获。

在响应中查找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
}