在删除所需的与会者时,EWS会向所有人发送邀请

时间:2013-05-21 14:31:36

标签: c# vb.net exchangewebservices

我有以下代码:

(会见交换预约)

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。添加成员并使用此模式会导致邀请仅发送给新添加的成员。但正如我之前所说,删除时没有同样的行为。

2 个答案:

答案 0 :(得分:2)

这样做的:

Meeting.Update(ConflictResolutionMode.NeverOverwrite, SendInvitationsOrCancellationsMode.SendOnlyToChanged)

而不是:

Meeting.Update(ConflictResolutionMode.AutoResolve, SendInvitationsOrCancellationsMode.SendOnlyToChanged)

解决了我的问题,我不知道为什么以及它遇到了什么问题。

答案 1 :(得分:1)

使用ConflictResolutionMode.AutoResolve代替ConflictResolutionMode.NeverOverwrite对我不起作用。经过一番研究,我发现这是正常行为。

SendInvitationsOrCancellationsMode enum的值SendOnlyToChangedSendToChangedAndSaveCopy在发送电子邮件时表现相似(唯一的区别是后者会保存已发送电子邮件的副本而前者不会t):

  

仅向有参与者发送会议邀请/取消   已添加或修改

没有提及已被删除的与会者。我认为这里的“修改”工作意味着,但显然情况并非如此。

Microsoft Support Article(文章编号:2873493)说这是预期的行为:

  

EWS问题:Appointment.Update中的SentToChangeAndSaveCopy参数   方法不起作用

     

症状

     
    

考虑以下情况:

         
        
  • 您构建Exchange Web服务(EWS)应用程序以更新Microsoft Exchange Server 2010环境中的会议请求。

  •     
  • 会议请求中的一个或多个被邀请者是外部或分发列表。

  •     
  • 您使用 Appointment.Update 方法以及 SentToChangeAndSaveCopy 参数从中移除一个被邀请者     会议请求和更新会议请求。

  •     
         

在此方案中,会议更新将发送给所有被邀请者

  
     

<强>原因

     
    

此行为是预期的。