C# Outlook导出通讯组列表+;包含在C中的项目#
我正在创建一个代码,从Outlook导出联系人+通讯组列表,并将其存储在BDD中 我可以使用以下代码导出联系人:C# Outlook导出通讯组列表+;包含在C中的项目#,c#,outlook,export,C#,Outlook,Export,我正在创建一个代码,从Outlook导出联系人+通讯组列表,并将其存储在BDD中 我可以使用以下代码导出联系人: mapiFolder.Items.Restrict([MessageClass] = \"IPM.Contact\); 完成后,我会对通讯组列表执行相同的操作 mapiFolder.Items.Restrict("[MessageClass] = \"IPM.DistList\""); 我正在解析我的通讯组列表,并在图书馆赎回的帮助下以以下方式存储它们: foreach (Dis
mapiFolder.Items.Restrict([MessageClass] = \"IPM.Contact\);
完成后,我会对通讯组列表执行相同的操作
mapiFolder.Items.Restrict("[MessageClass] = \"IPM.DistList\"");
我正在解析我的通讯组列表,并在图书馆赎回的帮助下以以下方式存储它们:
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);
}
}
和GetMember(x)
还远远不够理想,因为我们可以期望对象层次结构。包含ContactItems+/或分发列表等的分发列表
感谢您的帮助。首先,您可能希望切换到RDO对象系列,而不是使用OOM+Safe*项对象: 其次,RDODistListItem.GetMembers将返回RDOAddressEntries。对于该集合中的每个RDOAddressEntry对象,递归处理每个对象-分发列表将依次通过RDOAddressEntry.members集合公开其成员
Member.Count