我在Outlook中有不同的帐户。 根据当前选择的文件夹,我想找到相应帐户的smtp电子邮件地址。 (文件夹名称没有帮助)
我知道如何获取帐户的smtp电子邮件地址: (olApp.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress)
我知道如何获取当前选择的文件夹甚至它的商店名称: (olApp.ActiveExplorer.CurrentFolder.store.DisplayName)
但是我找不到如何链接这两个信息...
有什么想法吗?
thx:)
答案 0 :(得分:0)
Private Sub storeAddress_from_DisplayName()
Dim storeDisplayName As String
Dim storeSMTPAddress As String
Dim storeRecipient As Recipient
' DisplayName and PrimarySmtpAddress can be the same
storeDisplayName = ActiveExplorer.CurrentFolder.Store.DisplayName
Debug.Print " storeDisplayName: " & storeDisplayName
Set storeRecipient = Session.CreateRecipient(storeDisplayName)
If storeRecipient.AddressEntry.Type = "EX" Then
storeSMTPAddress = storeRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Debug.Print " storeSMTPAddress: " & storeSMTPAddress
End If
End Sub
答案 1 :(得分:0)
理论上,您可以解析EX商店条目ID以提取EX地址,然后使用它来构建可用于调用Namespace.GetAddressEntryFromID
的GAL条目ID。您可以在MFCMAPI source code中查看如何解析商店条目(在C ++中)。
如果使用Redemption是一个选项,它将公开RDOExchangeMailboxStore。Owner
属性(返回RDOAddressEntry对象,而后者又公开SMTPSAddress
属性):
Set MySession = CreateObject("Redemption.RDOSession")
MySession.MAPIOBJECT = Application.Session.MAPIOBJECT
set Store = MySession.GetStoreFromID(Application.ActiveExplorer.CurrentFolder.StoreID)
MsgBox Store.Owner.SmtpAddress