Outlook: контакты теряют ссылку после обновления при создании через Powershell
Я собрал некоторый код из Интернета для создания контактов, а затем групп контактов. Однако если я обновлю контакт после создания, "связь" между объектом контакта в группе контактов и контактом исчезнет. Группа контактов не обновляется с изменениями в контакте.
Если я вручную создаю группу контактов и контактов, связь будет поддерживаться, как и ожидалось. Любые идеи о том, что я мог пропустить?
Код для контакта:
$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
Заранее спасибо!
1 ответ
Вы добавляете $recipient
до его инициализации.
ОБНОВЛЕНИЕ: DistListItem.AddMember
в OOM добавляются только одноразовые получатели, нет возможности добавить контакты. Если использование Redemption является опцией, оно предоставляет RDODistListItem. AddContact
метод, который позволяет передавать из Outlook Redemption либо объект Outlook ContactMate, либо объект RDOContactItem. RDODistListItem также выставляет AddMembers
/ AddMember
/ AddMemberEx
методы.