我有以下代码:
(会见交换预约)
For Each Recipient As String In emailAdresses
For i As Integer = 0 To Meeting.RequiredAttendees.Count - 1
If (Meeting.RequiredAttendees(i).Address).ToUpper() = Recipient.ToUpper() Then
Meeting.RequiredAttendees.RemoveAt(i)
Exit For
End If
Next
Next
Meeting.Update(ConflictResolutionMode.AutoResolve, SendInvitationsOrCancellationsMode.SendOnlyToChanged)
现在您可以看到我正在使用SendInvitationsOrCancellationsMode.SendOnlyToChanged。
但即使我正在使用该模式,它仍然会将约会发送给所有与会者。
我查看了msdn,代码完全相同。 msdn告诉我应该发生以下情况:
保存会议并向您删除的与会者或与会者发送会议取消消息
所以基本上msdn sais它是有效的,但事实并非如此。是否有解决此问题的办法,或者是否有其他人遇到同样的问题?
我们的Exchange服务器是2007 SP1版本。
答案可以是C#或VB.NET,我会将其翻译成我们需要的语言。
PS。添加成员并使用此模式会导致邀请仅发送给新添加的成员。但正如我之前所说,删除时没有同样的行为。
答案 0 :(得分:2)
这样做的:
Meeting.Update(ConflictResolutionMode.NeverOverwrite, SendInvitationsOrCancellationsMode.SendOnlyToChanged)
而不是:
Meeting.Update(ConflictResolutionMode.AutoResolve, SendInvitationsOrCancellationsMode.SendOnlyToChanged)
解决了我的问题,我不知道为什么以及它遇到了什么问题。
答案 1 :(得分:1)
使用ConflictResolutionMode.AutoResolve
代替ConflictResolutionMode.NeverOverwrite
对我不起作用。经过一番研究,我发现这是正常行为。
SendInvitationsOrCancellationsMode
enum的值SendOnlyToChanged
和SendToChangedAndSaveCopy
在发送电子邮件时表现相似(唯一的区别是后者会保存已发送电子邮件的副本而前者不会t):
仅向有参与者发送会议邀请/取消 已添加或修改
没有提及已被删除的与会者。我认为这里的“修改”工作意味着,但显然情况并非如此。
这Microsoft Support Article(文章编号:2873493)说这是预期的行为:
EWS问题:Appointment.Update中的SentToChangeAndSaveCopy参数 方法不起作用
症状
考虑以下情况:
您构建Exchange Web服务(EWS)应用程序以更新Microsoft Exchange Server 2010环境中的会议请求。
会议请求中的一个或多个被邀请者是外部或分发列表。
您使用 Appointment.Update 方法以及 SentToChangeAndSaveCopy 参数从中移除一个被邀请者 会议请求和更新会议请求。
在此方案中,会议更新将发送给所有被邀请者。
<强>原因强>
此行为是预期的。