背景:
我想使用Outlook规则来触发脚本,使来自某些高知名度客户的所有电子邮件在收到时立即打开。
我已成功设置了一个规则,当这些客户给我发送电子邮件时会触发它。它看起来像这样:
我还成功创建了一个脚本,根据发件人打开回复邮件。它看起来像这样:
Sub OpenEmailImmediately(oEmail As Outlook.MailItem)
Select Case oEmail.Sender
Case "Jobs, Steve"
oEmail.Reply.Display
End Select
End Sub
尽管这个实现可以工作,但是我使用了
.Sender
属性来实现它。问题:
我希望使用发件人的电子邮件地址(每封电子邮件都有一个唯一值与之相关联)。不幸的是,我原以为
oEmail.SenderEmailAddress 将包含该电子邮件地址,但它仅适用于外部客户端。
在疑难解答过程中,我发现当我期望 oEmail.SenderEmailAddress 具有类似于以下内容的值时:
steve.jobs@apple.com
对于内部电子邮件,它的值类似于:
/O=APPLE/CN=RECIPIENTS/CN=JOBSS6738
问题:
是否有办法使此脚本适用于内部和外部,并使用他们的标准电子邮件地址?
已实施解决方案的代码:
使用Dmitry下面的答案后,修改了代码以使用电子邮件地址:
Sub OpenEmailImmediately(oEmail As Outlook.MailItem)
If oEmail.SenderEmailType = "EX" Then
Select Case oEmail.Sender.GetExchangeUser().PrimarySmtpAddress
Case "steve.jobs@apple.com"
oEmail.Reply.Display
End Select
Else
Select Case oEmail.SenderEmailAddress
Case "tom.brady@patriots.com"
oEmail.Reply.Display
End Select
End If
End Sub