首页 > 解决方案 > 如何尽快获得 Outlook DistributionList 的成员?

问题描述

我需要获取 Outlook 分发列表成员的电子邮件地址。此列表不在我的本地文件夹中,它是公司范围的列表。

我有一个解决方案,但它需要大量时间,因为在处理该组的成员之前,我会遍历所有现有组 (8,400+) 以找到有问题的组。

如果我已经知道分发列表的名称(也不需要获取所有其他 8,400 多个分发列表),是否有更好的方法来获取分发列表的成员?

这是我的代码:

outlookApp = New Outlook.Application
outlookNamespace = _outlookApp.GetNamespace("mapi")

Dim addrLists As Outlook.AddressLists =
    outlookApp.Session.AddressLists
Dim root As Outlook.AddressList =
    addrLists.OfType(Of Outlook.AddressList) _
             .FirstOrDefault(Function(x) x.Name = "All Groups")
Dim entry As Outlook.AddressEntry =
    root.AddressEntries.Cast(Of Outlook.AddressEntry) _
                       .FirstOrDefault(Function(x) x.Name = "<Enter Group Name Here>")

entry.Members包含此列表的所有成员。


我尝试使用该功能GetAddressEntryFromID,但只收到错误消息“不幸发生了问题。您可以再试一次。” (从德语翻译)。

标签: .netoutlookoffice-interop

解决方案


它比这简单得多:

set allGroups = Application.Session.AddressLists.Item("All Groups")
set addressEntry = allGroups.AddressEntries.Item("<Enter Group Name Here>")
for each m in addressEntry.Members
  MsgBox m.Name
next

推荐阅读