日常使用中,我们的概念里发送会议邀请和创建一个新的会议是一个过程,在WebDAV中,这是两个分离的过程。
创建一个会议,实际上是在用户的Calendar文件夹下创建一个eml文件。
发送邀请,实际是将上一步创建的eml,发送给对应的收件人。
上一篇文章中, 我们已经描述了如何创建一个会议,该会议对应了一个calendar文件夹中的eml.接下来的操作,是基于这个已经建立好的eml的。
发送会议请求:
1.将Calendar中的EML文件Copy至Drafts文件夹
2.修改Drafts中这个EML文件
3.将EML文件Move或Copy到##DavMailSubmissionURI##
这里要提一下,在WebDAV中发送邮件实际上都是把待发送的eml文件复制或者移动到
##DavMailSubmissionURI##文件夹中。这个文件夹在Client是看不到的,一个eml文件被移动到这个文件夹中,它就会被发送出去。
具体过程:
1. COPY (下面的代码仅为示意,不保证能运行)
a.srceml和desteml分别是源路径和目标路径。
b.注意这里的desteml必须是全路径,如果只写到最后一层目录名,貌似会导致最后一个目录直接被删除,也不知如何恢复。
-
String srceml = "";
-
String desteml = "";
-
-
MyCredentialCache = new System.Net.CredentialCache();
-
MyCredentialCache.Add( new System.Uri(srceml,
-
"NTLM",
-
new System.Net.NetworkCredential
-
-
(strUserName, strPassword, strDomain)
-
);
-
-
// Create the HttpWebRequest object.
-
COPYRequest = (System.Net.HttpWebRequest)
-
-
HttpWebRequest.Create(targeteml);
-
-
// Add the network credentials to the request.
-
COPYRequest.Credentials = MyCredentialCache;
-
-
// Specify the COPY method.
-
COPYRequest.Method = "COPY";
-
-
// Set the content type header.
-
COPYRequest.ContentType = "text/xml";
-
-
-
// Send the COPY request.
-
COPYRequest = (System.Net.HttpWebResponse)COPYRequest.GetResponse();
-
-
// Clean up.
-
COPYRequest.Close();
2.使用PROPPATCH,修改以下两个结点的值.具体使用方法参见上一篇文章
....
"urn:content-classes:calendarmessage"
IPM.Schedule.Meeting.Request"
...
3.将Drafts文件夹中,已经修改好的EML移动到##DavMailSubmissionURI##中。过程请参照Step 1.
唯一不同的是
COPYRequest.Method = "MOVE";
Reference.
阅读(2067) | 评论(0) | 转发(0) |