比较两个VBA代码以获取mailitem的SMTP地址

问题描述 投票:0回答:1

下面两个代码之间有区别吗?他们是否达到了同样的目的,或者直言不讳地说,哪一个是更好的选择而不是另一个处理不可预见的情景? objMail是Outlook Exchange Server上的MailItem对象。

您的意见将不胜感激。

[#1]

Dim Sender_email As String
    Sender_email = vbNullString

If objMail.SenderEmailType = "EX" Then
    Sender_email = objMail.Sender.GetExchangeUser.PrimarySmtpAddress
Else
    Sender_email = objMail.SenderEmailAddress
End If

[#2]

Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
Dim Sender_PA As Outlook.PropertyAccessor
Set Sender_PA = objMail.Sender.PropertyAccessor 
Dim Sender_email As String
    Sender_email = vbNullString

If objMail.SenderEmailType = "EX" Then
    Sender_email = Sender_PA.GetProperty(PR_SMTP_ADDRESS)
Else
    Sender_email = objMail.SenderEmailAddress
End If
vba server outlook smtp exchange-server
1个回答
0
投票

[#1]是优选的 - 触摸objMail.Sender是昂贵的,你应该避免,如果你ucan。 #2还假设PR_SMTP_ADDRESS始终可用。一般情况下,情况并非如此,您可能还想查看PR_EMS_AB_PROXY_ADDRESSES

© www.soinside.com 2019 - 2024. All rights reserved.