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の代わりに

新しいFolderId(WellKnownFolderName.Calendar、 "employee@domain.com")を使用する必要があります

したがって、最後の行はappt.Save(new FolderId(WellKnownFolderName.Calendar、 "employee@domain.com"));になります。

また、改行に問題があります。これはバージョン1.1以降のみであるため、おそらくバグです。

于 2010-07-30T15:01:35.523 に答える