1

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

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

联系人代码:

$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

提前致谢!

4

1 回答 1

0

$recipient在初始化之前添加。

更新DistListItem.AddMember在 OOM 中只添加一次性收件人,没有办法添加联系人。如果使用Redemption是一个选项,它会公开RODistListItemAddContact允许从 Redemption传递 Outlook 的 ContactItem 对象或RDOContactItem对象的方法。RDODistListItem 还公开了AddMembers//方法AddMemberAddMemberEx

于 2017-08-08T16:08:55.043 回答