2017-07-11 33 views
0

我正在开发ASP.NET MVC C#中的Web应用程序,您可以在其中创建每年在公司发送的自动电子邮件。C# - 访问Web应用程序中的Outlook通讯簿

我正在寻找一种方法来验证用户指定的收件人地址是否有效并存在于公司中。 我认为这可以通过查找Outlook的地址簿来完成,因为它包含公司中的所有电子邮件地址。

我已经四处搜索,发现https://msdn.microsoft.com/en-us/library/ff184631.aspx,建议使用Microsoft.Office.Interop.Outlook包。但是,就我所见,使用此软件包需要安装Outlook应用程序。我想这对于在服务器上运行的解决方案可能会有问题。

我可以使用Microsoft.Office.Interop.Outlook包完成我的目标,还是需要使用另一种更好地支持服务器的方法?

+1

由于您的MVC应用程序很可能在未安装MS Office的服务器上运行,因此无法正常工作 - 查看Exchange(以及您的Outlook通讯簿)通常从哪里获取其输入的Active Directory查询。 – Filburt

回答

0

继Filburt在评论文章中,我发现这个代码一块实现我的目标

https://code.msdn.microsoft.com/windowsdesktop/A-very-simple-example-to-8bbe95f0

它看起来在Active Directory中。 我已将代码从链接简化为以下内容。在这个例子中,我们检查,如果电子邮件地址[email protected]在AD存在:

using System.DirectoryServices; 

// check if address exists 
var searcher = new DirectorySearcher(); 
searcher.Filter = "(&(mail=" + "[email protected]" + "))"; 
if (searcher.FindOne() != null) { 
    // the email exists in AD - all good! 
} 

这个地方对我的作品,我想它会在服务器上也是如此。如果你发现任何问题,请告诉我。谢谢。