Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1003479
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: C#/.net

2013-06-03 15:16:59

日常使用中,我们的概念里发送会议邀请和创建一个新的会议是一个过程,在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必须是全路径,如果只写到最后一层目录名,貌似会导致最后一个目录直接被删除,也不知如何恢复。


  1.          String srceml = "";
  2.          String desteml = "";

  3.          MyCredentialCache = new System.Net.CredentialCache();
  4.             MyCredentialCache.Add( new System.Uri(srceml,
  5.                                    "NTLM",
  6.                                    new System.Net.NetworkCredential

  7. (strUserName, strPassword, strDomain)
  8.                                   );

  9.             // Create the HttpWebRequest object.
  10.             COPYRequest = (System.Net.HttpWebRequest)

  11. HttpWebRequest.Create(targeteml);

  12.             // Add the network credentials to the request.
  13.             COPYRequest.Credentials = MyCredentialCache;

  14.             // Specify the COPY method.
  15.             COPYRequest.Method = "COPY";

  16.             // Set the content type header.
  17.             COPYRequest.ContentType = "text/xml";

  18.             
  19.             // Send the COPY request.
  20.             COPYRequest = (System.Net.HttpWebResponse)COPYRequest.GetResponse();

  21.             // Clean up.
  22.             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) |
给主人留下些什么吧!~~