Сравнение двух кодов VBA для получения SMTP-адреса почтового элемента - PullRequest
0 голосов
/ 19 ноября 2018

Есть ли разница между двумя кодами ниже?Достигают ли они того же самого или, прямо скажем, какой из них лучше, чем другой, имеющий дело с непредвиденными сценариями?objMail - это объект MailItem на сервере Outlook Exchange.

Ваш отзыв будет оценен.

[# 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

1 Ответ

0 голосов
/ 19 ноября 2018

[# 1] предпочтительнее - дорого прикасаться к objMail.Sender, вам следует избегать этого, если вы хотите. # 2 также предполагает, что PR_SMTP_ADDRESS всегда доступен. Как правило, это не так, и вы также можете проверить PR_EMS_AB_PROXY_ADDRESSES.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...