0
我有以下代碼,它需要大量的時間從通訊組列表中查找聯繫人項目,交換服務器。有什麼可以做,以調整它的性能性能下降的Outlook插件獲取聯繫人項目的通訊組列表
public Outlook.AddressEntry GetDistributionListMembers(string sParamName,Outlook.Application _OutlookApp) { try { List<string> allAddressEntriesList = new List<string>(); Outlook.AddressLists addrLists = _OutlookApp.ActiveExplorer().Session.AddressLists; var receipientContactList = new List<Outlook.AddressEntry>(); foreach (Outlook.AddressList addrList in addrLists) { if (addrList.AddressEntries.Count <= 0) continue; receipientContactList.AddRange(addrList.AddressEntries.Cast<Outlook.AddressEntry>() .Where(x => x.Address.ToLower().Equals(sParamName.ToLower())));
如果調試
Debug.print(addrList.Name);
ENDIF
if (receipientContactList.Count > 0) break; } return receipientContactList.FirstOrDefault(x => x.GetContact().HasPicture) ?? receipientContactList.FirstOrDefault(); } catch (System.Exception ex) { WriteLog(System.Reflection.MethodBase.GetCurrentMethod().Name,
ex.Message); 返回null; }
}
謝謝德米特里。我需要從本地地址條目中搜索contactitem,還需要在本地outlook實例中搜索GAL和所有可用的地址列表條目。我需要檢查聯繫人項目是否是分發列表,還是單個人,並取決於要顯示的數據。你有任何參考/鏈接看?非常感謝 –
聽起來像Namespace.CreateRecipient/Recipient.Resolve是你需要的.. –
謝謝我通過檢查oAddressEntry.Type ==「EX」或oAddressEntry.Type ==「SMTP」來解決它。您能否讓我知道如何查找發件人/收件人是否爲通訊組列表,並根據與其關聯的電子郵件帳戶的數量計算得出結果。謝謝 –