Я создаю код, который экспортирует контакты + списки рассылки из Outlook для сохранения их в BDD.
Я могу экспортировать контакты со следующим кодом:
mapiFolder.Items.Restrict([MessageClass] = \"IPM.Contact\);
После этого я делаю то же самое для списков рассылки
mapiFolder.Items.Restrict("[MessageClass] = \"IPM.DistList\"");
Я анализирую свои списки рассылки и сохраняю их с помощью библиотеки Redemption следующим образом:
foreach (DistListItem distributionListItem in distributionListItems)
{
//use of Redemption to avoid a security message when accessing to contacts list
var safeList = new SafeDistList();
safeList.Item = distributionListItem;
var safeDistListExtended = new SafeDistListExtended(safeList, distributionListItem.DLName);
Как только я "прочитаю" все списки рассылки, самое время вставить их в BDD.
Первое: проверьте, что входит в каждый список рассылки, я имею в виду контакты или списки рассылки, которые сами могут содержать другие контакты или списки рассылки и т. Д.
var recipients = new List<SafeRecipient>();
for (int counterMember = 1; counterMember <= pSafeDistListExtended.DistList.MemberCount; counterMember++)
{
SafeRecipient safeRecipient = pSafeDistListExtended.DistList.GetMember(counterMember);
safeRecipient.Resolve();
if (safeRecipient.Resolved)
{
recipients.Add(safeRecipient);
}
}
Моя проблема в том, что я могу добавить ContactItems в свой список рассылки, но не могу включить в список рассылки только их имена.
Что мне нужно, так это когда я анализирую цикл «GetMember», я добавляю объект «Список рассылки», действительно ли это список рассылки, включенный в другой.
Потому что сейчас я вижу все объекты, включенные в список рассылки, как объекты одного типа.
У кого-нибудь будет идея, как это сделать ??
Просто чтобы вы знали, что способ получить контакты с помощью петли
Member.Count
и GetMember(x)
далеко от идеала, потому что мы можем ожидать иерархию объектов. Список рассылки, содержащий ContactItems + или списки рассылки и так далее ...
Спасибо за вашу помощь.