如何将成员添加到现有的 Outlook 通讯组列表?
How to add a member to an existing Outlook Distribution List?
我正在尝试使用 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()
回答
好的,我已经解决了我自己的问题。我不知道这是否是最有效的方式,但它运行。
我必须创建两个不同的项目。邮件项和联系人项。然后我为联系人项目分配了一个地址,该地址被传递给邮件项目的 属性 收件人。最后我把这个收件人传给了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()
我正在尝试使用 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()
回答
好的,我已经解决了我自己的问题。我不知道这是否是最有效的方式,但它运行。
我必须创建两个不同的项目。邮件项和联系人项。然后我为联系人项目分配了一个地址,该地址被传递给邮件项目的 属性 收件人。最后我把这个收件人传给了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()