如何使用C#将成员(名称和电子邮件地址)添加到现有Outlook分发列表

时间:2014-04-15 01:28:37

标签: outlook distribution-list

我正在尝试以编程方式将成员(名称和电子邮件地址)添加到现有的Outlook分发列表中,但我可以弄清楚如何抓取它。我发现许多帖子描述了如何创建新的Outlook分发列表,但没有关于如何将成员添加到现有分发列表的帖子。我已经能够检索联系人文件夹的项目集合,但我无法访问我想要的Outlook分发列表。请记住,“联系人”文件夹至少包含两种不同的对象类型:“联系人项目”和“分发列表”项。有没有办法从Contacts文件夹中检索分发列表项?任何帮助将不胜感激。我没有值得张贴的代码。

我取得了一些进展。我现在有以下代码:

Outlook.MAPIFolder outlookContactsFolder = outlookNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts); // Get Contacts folder.
Outlook.Items outlookContactsItems = outlookContactsFolder.Items; // Get the Items collection.

for (int i = 1; i <= outlookContactsItems.Count; i++)
{
    if (i == 62)
    {
        Outlook.DistListItem outlookDistListItem = outlookContactsItems.GetNext();
        Outlook.Recipient outlookRecipient = **(Need help creating a Recipient object with a name and email address)**
        outlookDistListItem.AddMember(outlookRecipient);
        outlookDistListItem.Save();
        break;
    }
    else
    {
        Outlook.ContactItem outlookContactsItem = outlookContactsItems.GetNext();
    }
}

我知道这不是最好的方法,但它有效。我现在可以在没有代码爆炸的情况下访问分发列表。现在我需要添加一个新成员。我知道我可以用AddMember方法做到这一点,但它需要一个Outlook.Recipient对象。我无法在任何地方找到如何使用姓名和电子邮件地址创建它。

1 个答案:

答案 0 :(得分:0)

如果知道DL名称,请使用MAPIFolder.Items.Item("The name of the DL")将其打开。通过条目id(Namespace.GetItemFromID)打开是一个更好的选择,但您需要知道EntryID属性的值。

要创建临时收件人,请使用Namespace.CreateRecipient,然后使用Recipient.Resolve。

如果使用Redemption是一个选项,RDODistListItem对象会公开AddMemberEx方法(允许添加一次性电子邮件地址)和AddContact方法(允许添加联系人或通讯组列表)。