1

目标是某人的 Exchange 日历 (2007)。我想在某人的日历中添加一个简单的“约会发生”。此代码有效(我使用的是 Microsoft.Exchange.WebServices.dll):

service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new NetworkCredential("supervisor", "password", "DOMAIN.COM");
service.AutodiscoverUrl("<employee@domain.com>", ValidateRedirectionUrlCallback);
appt = new Appointment(service);
appt.Subject = "<subject>";
appt.Body = "<Body Text>";
appt.Start = _DateFrom;
appt.End = _DateTo;
appt.Sensitivity = Sensitivity.Private;
appt.Save(WellKnownFolderName.Calendar);

但是,此代码存在问题:

  1. 任命对象是员工。添加约会时,约会会显示给员工(耶!),但也会显示给主管(嘘!)。我应该使用员工的凭证吗?如果是这样,如果我无法访问它怎么办 - 只有主管,我已经退出游戏了吗?
  2. 约会在 Outlook 中显示为“会议约会”,而不是“约会发生”。因此,输入会议参与者的框正在显示(当然没有人在其中),并且与我的场景无关。
  3. appt.Body 根本不响应 Environment.NewLine 或 "\r\n" - 我还没有尝试过 HTML。
4

1 回答 1

1

而不是 WellKnownFolderName.Calendar

您应该使用 new FolderId(WellKnownFolderName.Calendar,"employee@domain.com")

所以最后一行变成了 appt.Save(new FolderId(WellKnownFolderName.Calendar,"employee@domain.com"));

换行也有问题,这只是从 1.1 版开始,所以它可能是一个错误

于 2010-07-30T15:01:35.523 回答