[英]Getting Outlook contacts to CSV using C#
我遇到一个工作上的问题,那就是我们有一个销售团队,他们将他们的联系人存储在Outlook中并且不总是使用CRM,我们需要这些联系人来帮助进行销售分析。
现在,为了避免强迫销售团队使用CRM或手动导出他们的联系人,我正在寻找一种可能的方法,以编程方式从Outlook中提取他们的联系人,并创建一个CSV文件,该文件可以通过电子邮件发送到总部,然后添加到使用Perl脚本的数据库。
我对执行此操作的部分方法有想法,例如,我可以使程序作为定时任务每天运行,并在程序中存储一个小的SQLLite DB文件,以确保仅将新联系人添加到CSV中,并通过电子邮件将每个联系人时间。
我目前遇到的问题是,我很难找到有关如何使用C#与联系人联系的体面信息。 我已经看到一些基于使用Microsoft.Office.Interlop.Outlook命名空间的信息,但仅此而已。
如果有人可以将我指向一个尝试过类似操作的位置,以便我可以看到它是如何完成的,然后创建我的自定义程序。
预先感谢您的任何帮助
如果要访问Outlook数据(例如,联系人),则必须向Microsoft Outlook XX对象库添加COM引用。
之后,您可以创建Outlook应用程序对象的实例:
Microsoft.Office.Interop.Outlook.Application outlook;
outlook = new Microsoft.Office.Interop.Outlook.Application();
您可以通过以下方式获取联系人集合:
Microsoft.Office.Interop.Outlook.MAPIFolder folder =
outlook.GetNamespace("MAPI")
.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
IEnumerable<ContactItem> contacts = folder.Items.OfType<ContactItem>();
然后,您可以使用LINQ to Objects查询此集合:
var query = from contact in contacts
where contact.Email1Address != null
select contact;
Stefan Cruysbergs创建了一个OutlookProvider组件,该组件充当Outlook应用程序对象的包装。 您可以使用LINQ查询此提供程序并检索数据,例如联系人。
他在这里对此有完整的解释:
http://www.scip.be/index.php?Page=ArticlesNET05&Lang=NL
您可以在这里下载他的组件:
http://www.scip.be/index.php?Page=DownloadNETOfficeItems&Lang=NL
学习他的代码。 它应该足以让您入门。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.