【问题标题】:Why is it not possible to delete appointments in Exchange为什么不能在 Exchange 中删除约会
【发布时间】:2019-09-06 08:11:51
【问题描述】:

我正在为 Exchange 和另一个业务应用程序之间的约会设置双向同步服务。因为我之前有一个旧服务,所以我想删除 Exchange 中的所有旧约会,但并非所有约会都可以这样做。

每次调试时,我可以删除的约会都有appointment.Organizer.RoutingType 填充“SMTP”,appointment.Organizer.Address 填充电子邮件地址。其他的有 appointment.Organizer.RoutingType 填充“EX”和 appointment.Organizer.Address 有类似的东西: /O=HOSTING/OU=EXCHANGE 管理组 FYDIBOHF23SYZLT)/CN=RECIPIENTS/CN=E373428996

do
{
    itemChangeCollection = service.SyncFolderItems(new FolderId(WellKnownFolderName.Calendar), propertySet, null, 512, SyncFolderItemsScope.NormalItems, syncState);
    foreach (ItemChange itemChange in itemChangeCollection)
    {
        try
        {
            if (itemChange.ChangeType != ChangeType.Delete)
            {
                Appointment app = Appointment.Bind(service, itemChange.ItemId, propertySet);
                app.Delete(DeleteMode.MoveToDeletedItems);
            }
        }
        catch (Exception ex)
        {
        }
    }

    syncState = itemChangeCollection.SyncState;
} while (itemChangeCollection.MoreChangesAvailable);

删除行中出现的错误如下 Microsoft.Exchange.WebServices.Data.ServiceResponseException: '用于提交此请求的用户帐户无权代表指定的发送帐户发送邮件。'

问题不仅是无法删除,而且我的同步逻辑中还需要组织者的电子邮件地址。这里有谁知道为什么有时有 SMTP 有时有 EX?

【问题讨论】:

    标签: exchangewebservices


    【解决方案1】:

    EWS 正在尝试首先发送指定约会的会议取消,显然您使用的帐户不允许代表该邮箱发送。先尝试取消会议:https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-delete-appointments-and-cancel-meetings-by-using-ews-in-exchange

    【讨论】:

    • 执行此操作时,我收到以下错误: Microsoft.Exchange.WebServices.Data.ServiceResponseException: '用于提交此请求的用户帐户无权代表发送邮件指定的发送帐户。'
    • 或者您可以代表相关邮箱向服务帐户授予 send-as 权限。
    • 或者如果你不想发送取消,那么你可以指定sendCancellationsMode参数SendCancellationsMode.SendToNone
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2011-11-17
    • 2015-04-03
    相关资源
    最近更新 更多