【问题标题】:Updating Exchange contact group upon contact deletion删除联系人时更新 Exchange 联系人组
【发布时间】:2015-01-14 02:05:26
【问题描述】:

我将联系人组与联系人列表中的成员一起使用。

每当删除联系人列表中的联系人时,这个先前添加的成员仍然存在于联系人组中,直到我在 Outlook 中打开联系人组进行编辑时点击“立即更新”。然后弹出一个窗口询问我是否要删除不再存在的成员。

由于我使用多个联系人组,我不想单独更新每个联系人组,而是使用基于 EWS 托管 API 的后台作业。到目前为止,我已经设法选择了每个联系人组,显示成员的电子邮件地址,但我不知道如何完成outlook的“立即更新”按钮功能! AlwaysOverwrite 的普通更新方法有效,但没有做我想做的事:删除不存在的联系人。

(顺便说一下,联系人组/联系人列表位于公共文件夹中。)

【问题讨论】:

    标签: contacts exchangewebservices ews-managed-api


    【解决方案1】:

    EWS 不公开该功能。本质上,Outlook 会尝试通过条目 ID 检索联系人,当它失败时,它会提示您将其删除。您可以实现类似的东西(获取每个电子邮件地址,尝试将其解析回联系人等)。

    【讨论】:

    • 好的好主意,我设法检查了成员电子邮件是否仍在使用,但我在 ews 中找不到删除联系人组的特殊成员的方法 代码 sn-p:我发布了答案中的代码
    【解决方案2】:
    ## $service excahnge service referend
    ## $folder .. ExchangeFolder where group and contacts are 
    ## $group ... instance of contact group
    
    $members = $service.ExpandGroup($group.id)
    for($l=0;$l -lt $members.members.count;$l++) {
        $curMember = $members.members[$l]
        $objViewUser =  New-Object Microsoft.Exchange.WebServices.Data.ItemView(1)
        $curEmail = $members.members[$l].address
        ## check if there still exists a contact with this email-address
        $searchFilterEA1 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+ContainsSubstring([Microsoft.Exchange.WebServices.Data.ContactSchema]::EmailAddress1,$curEmail)
        $resultContact = $folder.FindItems($searchFilterEA1,$objViewUser).Items.Count
        if ($resultContact -eq 0) {
           "delete Contact $curEmail"
            ???????
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 2014-02-14
      • 2018-10-14
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多