У меня есть код, который частично заполняет сообщение электронной почты как ответ. Но я не могу получить отправителя, если они не находятся на (нашем/нашем)? сервер обмена.Как получить отправителя сообщения о перспективах
Public Sub CreateMessage()
Dim EmailFrom As String
Dim NewMessage As Outlook.MailItem
Dim OldMessage As Outlook.MailItem
Set OldMessage = Application.ActiveInspector.CurrentItem
Set NewMessage = Application.CreateItem(olMailItem)
EmailFrom = OldMessage.Sender.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x39FE001E")
NewMessage.Body = Body(EmailFrom)
NewMessage.HTMLBody = HTMLBody(EmailFrom)
NewMessage.Recipients.Add (EmailFrom)
NewMessage.Display
Set NewMessage = Nothing
End Sub
сообщение я получаю это «свойство» http://schemas.microsoft.com/mapi/proptag/0x39FE001E «неизвестно или не может быть найдено.» и он работает только с внутренними сообщениями.
Кто-нибудь знает способ в Outlook VBA, чтобы получить отправителя почтового сообщения, которое работает для всех из них?
Фиксированные на основе комментариев Димитрия:
Public Sub CreateMessage()
Dim EmailFrom As String
Dim NewMessage As Outlook.MailItem
Dim OldMessage As Outlook.MailItem
Set OldMessage = Application.ActiveInspector.CurrentItem
Set NewMessage = Application.CreateItem(olMailItem)
Select Case OldMessage.SenderEmailType
Case "EX"
EmailFrom = OldMessage.Sender.GetExchangeUser.PrimarySmtpAddress
Case Else
EmailFrom = OldMessage.SenderEmailAddress
End Select
NewMessage.Body = Body(EmailFrom)
NewMessage.HTMLBody = HTMLBody(EmailFrom)
NewMessage.Recipients.Add (EmailFrom)
NewMessage.Display
Set NewMessage = Nothing
End Sub
Не могу поверить, что я пропустил это! Благодаря! – John
И в случае Exchange вы можете вместо этого использовать MailItem, Sender.GetExchangeUser.PrimarySmtpAddress (с проверкой нулей, конечно) - PR_SMTP_ADDRESS не гарантируется. –
Просто хотел прокомментировать, что мне нужно проверить SenderEmailType. Если тип «EX», то я должен использовать код, который я разместил, иначе решение Дмитрия отлично работает. – John