#wpf
#wpf
Вопрос:
я пишу новое приложение, и мне нужно найти всех участников списка рассылки в Outlook из «Глобального списка адресов».
После того, как я нашел весь список рассылки, мне нужно найти всех участников списка рассылки.
Наконец, я хочу получить всю информацию об участнике (например, контактную форму).
Я нашел этот код для поиска участников списка рассылки, но проблема в том, что мне нужно выбрать список рассылки из Outlook, и после этого в нем отобразятся все участники. Я хочу сделать это автоматически, предварительно введя название списка рассылки.
private void GetDistributionListMembers()
{
gal = outlookApp.Session.GetGlobalAddressList();
Outlook.SelectNamesDialog snd =
outlookApp.Session.GetSelectNamesDialog();
Outlook.AddressLists addrLists =
outlookApp.Session.AddressLists;
foreach (Outlook.AddressList addrList in addrLists)
{
if (addrList.Name == "My Distribution List")
{
snd.InitialAddressList = addrList;
break;
}
}
snd.NumberOfRecipientSelectors =
Outlook.OlRecipientSelectors.olShowTo;
snd.ToLabel = "D/L";
snd.ShowOnlyInitialAddressList = true;
snd.AllowMultipleSelection = false;
snd.Display();
if (snd.Recipients.Count > 0)
{
Outlook.AddressEntry addrEntry =
snd.Recipients[1].AddressEntry;
if (addrEntry.AddressEntryUserType ==
Outlook.OlAddressEntryUserType.
olExchangeDistributionListAddressEntry)
{
Outlook.ExchangeDistributionList exchDL =
addrEntry.GetExchangeDistributionList();
Outlook.AddressEntries addrEntries =
exchDL.GetExchangeDistributionListMembers();
if (addrEntries != null)
foreach (Outlook.AddressEntry exchDLMember
in addrEntries)
{
MessageBox.Show(exchDLMember.Name);
}
}
}
}
Может ли кто-нибудь, пожалуйста, помочь мне с этим? я много искал в Google, но не нашел никакого решения.
Большое спасибо за вашу помощь.
Ответ №1:
Я нашел решение, позволяющее получить всех участников определенного «Списка рассылки», не выбирая его вручную, вот код:
private void GetDistributionListMembers()
{
gal = outlookApp.Session.GetGlobalAddressList();
Outlook.SelectNamesDialog snd =
outlookApp.Session.GetSelectNamesDialog();
Outlook.AddressLists addrLists =
outlookApp.Session.AddressLists;
foreach (Outlook.AddressList addrList in addrLists)
{
if (addrList.Name == "My Distribution List")
{
snd.InitialAddressList = addrList;
break;
}
}
snd.NumberOfRecipientSelectors =
Outlook.OlRecipientSelectors.olShowTo;
snd.ToLabel = "D/L";
snd.ShowOnlyInitialAddressList = true;
snd.AllowMultipleSelection = false;
snd.Recipients.Add("My Distribution List");
snd.Recipients.ResolveAll();
//snd.Display();
if (snd.Recipients.Count > 0)
{
Outlook.AddressEntry addrEntry =
snd.Recipients[1].AddressEntry;
if (addrEntry.AddressEntryUserType ==
Outlook.OlAddressEntryUserType.
olExchangeDistributionListAddressEntry)
{
Outlook.ExchangeDistributionList exchDL =
addrEntry.GetExchangeDistributionList();
Outlook.AddressEntries addrEntries =
exchDL.GetExchangeDistributionListMembers();
if (addrEntries != null)
foreach (Outlook.AddressEntry exchDLMember
in addrEntries)
{
MessageBox.Show(exchDLMember.Name);
}
}
}
}
Я пытаюсь найти решение для получения всей информации о контакте (например, адрес, менеджер, …) у кого-нибудь есть идея?