В настоящее время я управляю программой, которая анализирует данные электронной почты.Одна из проблем, возникших на ранних этапах разработки, заключалась в том, что запись в полях TO CC или BCC электронной почты часто представляла собой не реальный адрес электронной почты, а какой-либо адрес списка рассылки.Поскольку приложению необходимо точно фиксировать количество людей, которым отправляется электронное письмо, необходимо расширить списки рассылки, чтобы я мог записать конечное число получателей, которым отправляется электронное письмо.Я легко справился с обычными списками рассылки, но столкнулся с проблемой динамических списков рассылки
Я создал рабочий режим, который может это сделать.Вот код:
/// <summary>
/// Get the List of A dynamic distribution Group in Key Value Pairs
/// the key is the CN
/// the value is the filter for the membership of that group
/// </summary>
/// <returns>Dictionary of strings </returns>
public List<DistributionList> GetDynamicDistributionLists(string strEmailAddress)
{
List<DistributionList> distributionLists = new List<DistributionList>();
DomName = "dc=" + Settings.ImpersonatedUserDomain.Replace(".", ",dc=");
using(var group = new DirectoryEntry("GC://" + DomName))
{
using(var searchRoot = new DirectoryEntry("GC://" + Settings.GlobalCatalogServer + "/" + DomName))
using(var searcher = new DirectorySearcher(searchRoot, "(&(ObjectClass=msExchDynamicDistributionList)(proxyAddresses=smtp:" + strEmailAddress.Trim() + "))"))
using(var results = searcher.FindAll())
{
foreach(SearchResult result in results)
{
if(result.Properties.Contains("cn") && result.Properties.Contains("msExchDynamicDLFilter"))
{
DistributionList dl = new DistributionList();
dl.DType = DLT.DDL;
dl.CN = result.Properties["cn"][0].ToString();
dl.FILORDN = result.Properties["msExchDynamicDLFilter"][0].ToString();
distributionLists.Add(dl);
}
}
}
}
return distributionLists;
}
Это работает, но мне нужно открыть VPN на сервере глобального каталога, если я хочу запустить этот код удаленно на сайт.Иногда я хочу запускать удаленно, и весь мой другой код может выполняться удаленно, используя EWS без необходимости открытия VPN.Поэтому я пытаюсь найти способ доступа к серверу с помощью ADWS.
Может ли кто-нибудь помочь мне найти код, который позволил бы мне запускать вышеуказанный код с использованием ADWS, поэтому мне не нужно открывать VPN.
Спасибо,
Siv