我正在制作一个用Visual Studio 2013,ASP,C#设计的网络程序。
我正在寻找一种方法,可以搜索Active Directory以获取电子邮件地址,以便在生成报告时发送自动电子邮件。我的要求是根据个人的职位和所在地(即纽约,达拉斯等)获取个人的电子邮件地址。
我正在考虑创建两个列表(一个用于TO:地址,另一个用于CC:地址)。我打算使用列表,因为收到电子邮件的人数因网站位置和报告类型而异。
我的问题是我不知道如何设置搜索参数以填充这些列表。我所做的研究表明我需要使用System.DirectoryServices来创建DirectorySearcher。
这一切都将在"提交报告"按钮点击事件。
答案 0 :(得分:0)
为您需要的filter创建properties:
string filter = @"(&(objectCategory=Person)(physicalDeliveryOfficeName=Dallas))";
然后搜索邮件地址:
List<string> list = GetMail(filter);
List<string> GetMail(string SearchFilter)
{
List<string> MailAddresses = new List<string>();
using (DirectorySearcher directorySearcher = new DirectorySearcher())
{
directorySearcher.Filter = SearchFilter;
SearchResultCollection resultCollection = directorySearcher.FindAll();
foreach (SearchResult searchResult in resultCollection)
{
try
{
MailAddresses.Add(searchResult.Properties["mail"][0].ToString());
}
catch {
//Maybe fill a list of errors here.
}
}
}
return MailAddresses;
}