【发布时间】:2022-05-05 00:14:39
【问题描述】:
我正在创建一个代码,用于从 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 +/或 Distributions Lists 等的分发列表...
感谢您的帮助。
【问题讨论】: