如何添加成员到现有的Outlook分发列表?



我正在尝试使用Python库win32com向现有的Outlook分发列表添加成员。

使用以下代码删除现有成员没有任何问题:

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
myDistributionList = outlook.Folders.Item(1).Folders[5].Items.Item('DL') # Number 5 because the DL is in the contacts folder
firstContact = myDistributionList.GetMember(1)
myDistributionList.RemoveMember(firstContact)
myDistributionList.Save()

阅读VBA文档,我了解到要使用分发列表的AddMember方法,我必须创建一个收件人对象。即使这样,下面的代码也没有给出任何错误,看起来好像它没有运行。Outlook中的DL仍然为空。

newContact = win32com.client.Dispatch("Outlook.Application").Session.CreateRecipient('example@gmail.com')
myDistributionList.AddMember(newContact)
myDistributionList.Save()

ANSWER

好了,我已经解决了我自己的问题。我不知道这是不是最有效的方式,但它运行。

我必须创建两个不同的项。邮件项和联系人项。然后,我为联系人项目分配了一个地址,并将该地址传递给邮件项目的属性接收者。最后,我把这个收件人交给了DL。

myTempItem  = win32com.client.Dispatch("Outlook.Application").CreateItem(0) # Mail item
contact = win32com.client.Dispatch("Outlook.Application").CreateItem(2) # Contact item
contact.Email1Address = 'example@gmail.com'
myTempItem.Recipients.Add(contact.Email1Address)
myDistributionList.AddMembers(myTempItem.Recipients)
myDistributionList.Save()
# And if you want to see the contact group
myDistributionList.Display()

相关内容

最新更新