我们有3-4个在Outlook中共享电子邮件地址的用户。我正在开发插件,它将提取选定商店的电子邮件地址,并将从人们那里获得它的联系人文件夹。
我的问题是我不知道如何获得SelectedStore的电子邮件地址。这是我的代码。
string recipientName = SelectedStore.EmailAddress; // This is what I want to make it work
Outlook.Recipient recip = ns.CreateRecipient(recipientName);
recip.Resolve();
if (recip.Resolved)
{
Outlook.MAPIFolder folderContacts = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderContacts);
}任何帮助都将不胜感激。
谢谢。
发布于 2019-09-20 23:29:42
对于邮箱所有者,您可以尝试读取MAPIFolder.Store属性以访问父存储,然后使用Store.PropertyAccessor.GetProperty读取PR_MAILBOX_OWNER_ENTRYID属性(DASL名称"http://schemas.microsoft.com/mapi/proptag/0x661B0102")。然后,您可以使用商店所有者条目id来调用Namespace.GetAddressEntryFromID。一旦拥有了AddressEntry对象,就可以使用AddressEntry.GetExchangeUser.PrimarySmtpAddress.了
请注意,PR_MAILBOX_OWNER_ENTRYID属性仅在在线商店中可用。您可能希望使用Redemption及其RDOExchangeMailboxStore.Owner.SmtpAddress属性。可以使用RDOSession.GetRDOObjectfromOutlookObject(Store)或RDOSession.GetStoreFromID检索RDOExchangeMailboxStore。
您还可以尝试检索商店条目id并对其进行解析-其格式已记录在案,并且您可以提取所有者的EX类型地址。然后,可以构造GAL条目id来打开AddressEntry对象。从那里,您可以检索SMTP地址。
发布于 2019-09-20 21:31:35
只是想让你知道,我找到了解决方案。
Outlook.MAPIFolder folderContacts = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
应该能行得通。
https://stackoverflow.com/questions/58026144
复制相似问题