2

我有以下代码:

(会见交流预约)

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 说它是有效的,但它没有。是否有解决此问题的方法,或者是否有其他人遇到同样的问题?

我们的交换服务器是 2007 SP1 版本。

答案可以是 C# 或 VB.NET,我会将其翻译成我们需要的语言。

PS。添加成员并使用此模式会导致邀请仅发送给新添加的成员。但正如我在删除之前所说的那样,没有这种相同的行为。

4

2 回答 2

2

正在做:

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

代替:

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

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

于 2013-05-22T08:03:08.007 回答
1

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

在发送电子邮件时,SendInvitationsOrCancellationsMode枚举的值SendOnlyToChangedSendToChangedAndSaveCopy行为类似(唯一的区别是后者保存已发送电子邮件的副本,而前者不保存):

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

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

这篇Microsoft 支持文章(文章 ID:2873493)说这是预期的行为:

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

症状

考虑以下场景:

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

  • 会议请求中的一位或多位受邀者是外部人员或分发列表。

  • 您将Appointment.Update方法与SentToChangeAndSaveCopy参数一起使用以从会议请求中删除一位被邀请者并更新会议请求。

在这种情况下,会向所有受邀者发送会议更新

原因

这种行为是预期的。

于 2016-02-25T12:51:48.973 回答