2010-03-10 81 views
9

在EWS託管API是很容易地創建約會爲特定用戶:使用EWS託管API爲其他用戶創建約會?

ExchangeService service = new ExchangeService(); 
service.Credentials = new NetworkCredentials ("administrator", "password", "domain"); 
service.AutodiscoverUrl(emailAddress); 

Appointment appointment = new Appointment(service); 
appointment.Subject = "Testing"; 
appointment.Start = DateTime.Now; 
appointment.End = appointment.Start.AddHours(1); 
appointment.Save(); 

這將創建一個管理員任命。但是,假設我想爲其他用戶創建約會(不是將該用戶添加爲我的約會參與者)。這可能通過EWS託管API來實現嗎?

+1

@Alfred。你能告訴我在哪裏安裝了Managed API DLL嗎?我無法在我的機器上的任何地方找到它...很多謝謝。 – brumScouse 2011-01-11 10:28:16

+1

@brumScouse。而不是評論,你應該發佈一個新的問題。無論如何,託管API DLL不與Exchange Server一起安裝。您必須從Microsoft下載並安裝到您的計算機上。截至此日期,最新版本可以在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1 – 2011-01-12 18:38:57

+0

@brumScouse找到,按照Alfred的指示DLL可以在類似於以下位置找到:C:\ Program Files \ Microsoft \ Exchange \ Web Services \ 2.2 – 2014-08-16 01:03:19

回答

7
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "[email protected]")); 

也會工作。 然後將inboxFolder.id傳遞給Appointment.Save調用。更新和刪除不需要這個。 最好的答案是使用模擬,但這需要服務器管理員啓用它。如果你不使用這種力量,這種方法會讓你做你需要的。 注意:運行應用程序的用戶必須擁有目標帳戶的權限,否則這將失敗(因爲它應該)。

這裏找到:http://msdn.microsoft.com/en-us/library/gg274408(v=EXCHG.80).aspx

+1

謝謝!這有效,但它必須是** WellKnownFolderName.Calendar **而不是** WellKnownFolderName.Inbox **。 – Ephedra 2014-09-03 07:27:05

5

我知道這已經回答了,但在回答@阿米爾的評論,你可以做到這一點使用委託我只是做了一個項目我工作。

由於在他的回答中建議@matt,您可以修改約會的保存方法以指向其他用戶文件夾,在這種情況下,它將是日曆。

代碼看起來如下

Appointment appointment = new Appointment(service); 
appointment.Subject = "Testing"; 
appointment.Start = DateTime.Now; 
appointment.End = appointment.Start.AddHours(1); 
appointment.Save(new FolderId(WellKnownFolderName.Calendar, new Mailbox(_EmailAddress))); 

希望幫助

相關問題