Как добавить участника (имя и адрес электронной почты) в существующий список рассылки Outlook с помощью C#

Я пытаюсь программно добавить участника (имя и адрес электронной почты) в существующий список рассылки Outlook, но я могу понять, как его получить. Я нашел много публикаций, описывающих, как создать новый список рассылки Outlook, но ни одного о том, как добавить участника в существующий. Мне удалось получить коллекцию элементов из папки "Контакты", но я не могу получить доступ к списку рассылки Outlook, который мне нужен. Помните, что папка "Контакты" содержит как минимум два разных типа объектов: "Элементы контакта" и "Список рассылки". Есть ли способ просто получить элементы списка рассылки из папки "Контакты"? Любая помощь будет принята с благодарностью. У меня нет кода, достойного публикации.

Я добился определенного прогресса. Теперь у меня есть код ниже:

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 ответ

Решение

Если знаете имя DL, используйте MAPIFolder.Items.Item("The name of the DL") чтобы открыть это. Открытие по идентификатору записи (Namespace.GetItemFromID) - намного лучший вариант, но вам необходимо знать значение свойства EntryID.

Чтобы создать временного получателя, используйте Namespace.CreateRecipient, а затем Recipient.Resolve.

Если использование Redemption является опцией, объект RDODistListItem предоставляет метод AddMemberEx (который позволяет добавить одноразовый адрес электронной почты) и метод AddContact (позволяет добавить контакт или список рассылки).

Другие вопросы по тегам