我有一些代码可以部分填充电子邮件作为回复。但我无法联系发件人,除非他们在(一个/我们的)上?交换服务器。
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
您正在请求PR_SMTP_ADDRESS
属性,这是特定于交易所的。检查是否SenderEmailType
是“EX”,然后才读取PR_SMTP_ADDRESS
财产。否则只需阅读MailItem.SenderEmailAddress
财产。
查看消息Outlook间谍软件(我是它的作者 - 单击 IMessage)以查看可用的属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)