如何获取当前Outlook存储的SMTP地址 [英] How to get smtp address of current Outlook store
本文介绍了如何获取当前Outlook存储的SMTP地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们在Outlook中有3-4个共享电子邮件地址的用户。 我正在开发插件,它将提取选定商店的电子邮件地址,并将从人们那里获得它的联系人文件夹。
我的问题是我不知道如何获取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);
}
如有任何帮助,将不胜感激。
谢谢。
推荐答案
对于邮箱所有者,您可以尝试读取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
属性。RDOExchangeMailboxStore
可以使用RDOSession.GetRDOObjectfromOutlookObject(Store)
或RDOSession.GetStoreFromID
检索。
您还可以尝试检索商店条目id并对其进行解析-其格式已记录在案,并且您可以提取所有者的ex类型地址。然后,您可以构造GAL条目ID以打开AddressEntry
对象。从那里,您可以检索SMTP地址。
这篇关于如何获取当前Outlook存储的SMTP地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文