Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird der Benutzer aufgefordert, eine Exchange-Verteilerliste aus dem Dialogfeld Namen auswählen auszuwählen, und die Verteilerliste wird so erweitert, dass die Mitglieder der Verteilerliste angezeigt werden.
Beispiel
In diesem Codebeispiel wird die GetExchangeDistributionListMembers -Methode des ExchangeDistributionList -Objekts aufgerufen, um die AddressEntries -Sammlung mit allen Mitgliedern der Liste abzurufen. Weil Verteilerlisten in anderen Verteilerlisten verschachtelt sein können, kann die zurückgegebene AddressEntries-Sammlung jede Art von Exchange-AddressEntry -Objekt darstellen.
Hinweis
Das Erweitern von Verteilerlisten kann eine Leistungsbelastung auf einem Exchange-Server verursachen. Verwenden Sie daher die GetExchangeDistributionListMembers-Methode vorsichtig. Erwarten Sie, dass Ihr Code langsam ist, wenn er große Verteilerlisten erweitert.
Um die Mitglieder einer Verteilerliste abzurufen, muss der Benutzer mit einem Exchange-Server verbunden und online sein.
Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die Anweisung Imports oder using darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgenden Codezeilen zeigen, wie Sie den Import und die Zuweisung in Visual Basic und C# vornehmen.
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub GetDistributionListMembers()
Dim snd As Outlook.SelectNamesDialog = _
Application.Session.GetSelectNamesDialog()
Dim addrLists As Outlook.AddressLists = _
Application.Session.AddressLists
For Each addrList As Outlook.AddressList In addrLists
If addrList.Name = "All Groups" Then
snd.InitialAddressList = addrList
Exit For
End If
Next
snd.NumberOfRecipientSelectors = _
Outlook.OlRecipientSelectors.olShowTo
snd.ToLabel = "D/L"
snd.ShowOnlyInitialAddressList = True
snd.AllowMultipleSelection = False
snd.Display()
If (snd.Recipients.Count > 0) Then
Dim addrEntry As Outlook.AddressEntry = _
snd.Recipients(1).AddressEntry
If (addrEntry.AddressEntryUserType = _
Outlook.OlAddressEntryUserType. _
olExchangeDistributionListAddressEntry) Then
Dim exchDL As Outlook.ExchangeDistributionList = _
addrEntry.GetExchangeDistributionList()
Dim addrEntries As Outlook.AddressEntries = _
exchDL.GetExchangeDistributionListMembers()
If Not (addrEntries Is Nothing) Then
For Each exchDLMember As _
Outlook.AddressEntry In addrEntries
Debug.WriteLine(exchDLMember.Name)
Next
End If
End If
End If
End Sub
private void GetDistributionListMembers()
{
Outlook.SelectNamesDialog snd =
Application.Session.GetSelectNamesDialog();
Outlook.AddressLists addrLists =
Application.Session.AddressLists;
foreach (Outlook.AddressList addrList in addrLists)
{
if (addrList.Name == "All Groups")
{
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)
{
Debug.WriteLine(exchDLMember.Name);
}
}
}
}