Outlook VBA: Как получить SMTP-адрес выбранной учетной записи папки - PullRequest
0 голосов
/ 13 января 2019

У меня разные учетные записи в моем Outlook. В зависимости от выбранной в данный момент папки, я хотел бы найти адрес электронной почты smtp соответствующей учетной записи. (Имя папки не помогает)

Я знаю, как получить SMTP-адрес электронной почты учетной записи: (OlApp.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress)

Я знаю, как получить текущую выбранную папку или даже название магазина: (OlApp.ActiveExplorer.CurrentFolder.store.DisplayName)

но я не могу найти, как связать обе информации ...

Есть идеи?

thx:)

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Теоретически вы можете проанализировать идентификатор записи магазина EX, чтобы извлечь адрес EX, а затем использовать его для создания идентификатора записи GAL, который можно использовать для вызова Namespace.GetAddressEntryFromID. Вы можете увидеть, как анализируется запись магазина (в C ++) в исходном коде MFCMAPI .

Если используется Погашение является параметром, оно предоставляет свойство 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
0 голосов
/ 14 января 2019
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
...