Tob*_*ias 8 c# mapi outlook shared
我想通过Mapi从Outllok导入联系人.标准联系的第一步没有问题:
MAPIFolder contactObjects =
outlookObj.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
foreach (ContactItem contactObject in contactObjects.Items) {
... import contact ...
}
Run Code Online (Sandbox Code Playgroud)
在第二步中,我还想要导入共享联系人.我发现只有使用
OpenSharedItem(sharedContacts.vcf)
Run Code Online (Sandbox Code Playgroud)
但我不知道我想打开的文件(共享项)的名称.有人知道如何访问共享联系人并可以帮助我吗?
托比
更新:
感谢vcf-Files的提示.但是我在哪里可以找到它们?
UPDATE2:
我玩了OutlookSpy.我可以访问具有共享联系人的文件夹,但只能通过知道id(对于其他用户当然不同):
var ns = outlookObj.GetNamespace("MAPI");
var flr = ns.GetFolderFromID("00000000176A90DED92CE6439C1CB89AFE3668F90100D1AD8F66B576B54FB731302D9BB9F6C40007E4BAC5020000");
foreach (var contactObject in flr.Items) {
...
}
Run Code Online (Sandbox Code Playgroud)
如何在不知道ID的情况下访问该文件夹?
标题中提出的问题的解决方案几乎很简单。您只需要拨打:
Recipient recip = Application.Session.CreateRecipient("Firstname Lastname");
MAPIFolder sharedContactFolder = Application.Session.GetSharedDefaultFolder(recip, OlDefaultFolders.olFolderContacts);
Run Code Online (Sandbox Code Playgroud)
因为这不能解决我的问题,我会问另一个问题!