1
電子メールメッセージを部分的に返信するコードがあります。しかし、送信者がいない場合(私たち/私たち)、送信者を得ることができませんか?交換サーバー。Outlookメッセージの送信者を取得する方法
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ですべてのメールメッセージの送信者を取得する方法を知っていますか?
のDimitryのコメントに基づいて固定:
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
・交換の場合は、あなたが(もちろん、ヌルをチェックして)の代わりにMailItem、Sender.GetExchangeUser.PrimarySmtpAddressを使用することをお勧めします - PR_SMTP_ADDRESSが利用可能であることが保証されていません。 –
SenderEmailTypeをチェックする必要があるとコメントしたかっただけです。タイプが「EX」の場合、私が投稿したコードを使用する必要があります。そうしないと、ドミトリーのソリューションは完全に機能します。 – John