更改引用的联系人 (ContactItem) 后,不会更新 Outlook 通讯组列表 (DistListItem)

Outlook Distribution Lists (DistListItem) are not updated after a referenced contact (ContactItem) is changed

我从网上收集了一些代码来创建联系人和联系人组。但是,如果我在创建后更新联系人,联系人组内的联系人对象与联系人之间的 "relation" 就会消失。联系人组不会随着联系人的更改而更新。

如果我手动创建一个联系人和联系人组,关系就会按预期保持。关于我可能错过的任何想法?

联系人代码:

$olContactItem = 2
$o = new-object -comobject outlook.application
$c = $o.CreateItem($olContactItem)
$c.FullName =  "Dummy Account"
$c.Email1Address =  "aa@bb.com"
$a = $c.Save() 

联系人组代码:

$outlook = new-object -com Outlook.Application
$contacts = $outlook.Session.GetDefaultFolder(10)
$session = $outlook.Session
$session.Logon("Outlook")
$namespace = $outlook.GetNamespace("MAPI")
$DL = $contacts.Items.Add("IPM.DistList")
$DL.DLName = "dummy2"
$recipient = $namespace.CreateRecipient("Dummy Account")    
$recipient.Resolve()
$DL.AddMember($recipient)
$DL.Save()

在我看来很直接。我检查了 API,但这并没有让我更进一步。 https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/recipients-object-outlook

提前致谢!

你在初始化之前添加$recipient

UPDATE: DistListItem.AddMember OOM 只添加一次性收件人,无法添加联系人。如果使用来自 Redemption 的 Redemption (I am its author) is an option, it exposes RDODistListItem.AddContact method that allows to pass either Outlook's ContactItem object or RDOContactItem 对象。 RDODistListItem 还公开了 AddMembers / AddMember / AddMemberEx 方法。