gpt4 book ai didi

vba - SenderEmailAddress 属性不包含内部联系人的标准电子邮件地址

转载 作者:行者123 更新时间:2023-12-02 04:35:42 25 4
gpt4 key购买 nike

背景:

使用 Outlook 规则触发脚本,我希望来自某些高可见度客户的所有电子邮件在收到后立即打开。

我已经成功设置了一条规则,当这些客户向我发送电子邮件时就会触发该规则。它看起来像这样:

emails from Jobs and Wozniak

我已经成功创建了一个脚本,可以打开电子邮件的回复,具体取决于发件人。它看起来像这样:

Sub OpenEmailImmediately(oEmail As Outlook.MailItem)

Select Case oEmail.Sender
Case "Jobs, Steve"
oEmail.Reply.Display
End Select

End Sub

虽然这有效,但我已经使用 .Sender 实现了它属性(property)。

问题:

更愿意使用发件人的电子邮件地址(与我收到的每封电子邮件相关的唯一值)来实现此目的。不幸的是,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

最佳答案

这是一个完全有效的“EX”类型地址(与 SMTP 相对) - 检查 MailItem.SenderEmailType 属性的值。如果是“SMTP”,请使用MailItem.SenderEmailAddress。如果是“EX”,请使用 MailItem.Sender.GetExchangeUser().PrimarySmtpAddress

您还可以尝试使用 MailItem 读取 PidTagSenderSmtpAddress MAPI 属性(DASL 名称 http://schemas.microsoft.com/mapi/proptag/0x5D01001F) .PropertyAccessor.GetProperty - 查看带有 OutlookSpy 的消息(我是它的作者 - 单击 IMessage 按钮)或 MFCMAPI .

关于vba - SenderEmailAddress 属性不包含内部联系人的标准电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36900156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com