c# - Outlook Mapi 访问共享联系人

标签 c# outlook shared mapi

我想通过 Mapi 从 Outllok 导入联系人。 标准接触的第一步没问题:

MAPIFolder contactObjects = 
outlookObj.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
foreach (ContactItem contactObject in contactObjects.Items) {
    ... import contact ...
}

在第二步中,我还想导入共享联系人。我唯一发现的是使用

OpenSharedItem(sharedContacts.vcf)

但我不知道要打开的文件(共享项目)的名称。 有人知道如何访问共享联系人并且可以帮助我吗?

托比


更新:

感谢 vcf 文件的提示。但是我在哪里可以找到它们?


更新2:

我玩过 OutlookSpy。我可以访问具有共享联系人的文件夹,但只能通过知道 id(这对于其他用户来说当然是不同的):

var ns = outlookObj.GetNamespace("MAPI");
var flr = ns.GetFolderFromID("00000000176A90DED92CE6439C1CB89AFE3668F90100D1AD8F66B576B54FB731302D9BB9F6C40007E4BAC5020000");

foreach (var contactObject in flr.Items) {
       ...
}

如何在不知道 ID 的情况下访问文件夹?

最佳答案

您需要显式解析 vCard 文件或使用 Redemption(我是它的作者)- 它允许使用 RDOContactItem 导入 vCard 文件.导入 - http://www.dimastr.com/redemption/RDOMail.htm#methods

关于c# - Outlook Mapi 访问共享联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193374/

相关文章:

c# - 继承类的无效输出

c# - 列表场景的 AutoMapper 似乎只重复映射列表中的第一个对象

c# - ASP.NET ViewModel 替代方案

outlook - 将加载项部署到 Office 365 管理中心后,加载项不显示在 'Admin Managed' 下

linux - 如何列出附加到Linux中共享内存段的进程?

android - 与 Android 应用共享 Java 库

c# - 自定义堆二叉树实现——随机节点删除

javascript - 通过javascript访问outlook联系人文件夹跨浏览器

https - 当运行 fiddler Outlook 停止工作时,我该如何解决这个问题?

database - SOA 和共享数据库