比较两个VBA代码以获取mailitem的SMTP地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个VBA代码以获取mailitem的SMTP地址相关的知识,希望对你有一定的参考价值。
下面两个代码之间有区别吗?他们是否达到了同样的目的,或者直言不讳地说,哪一个是更好的选择而不是另一个处理不可预见的情景? 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
答案
[#1]是优选的 - 触摸objMail.Sender
是昂贵的,你应该避免,如果你ucan。 #2还假设PR_SMTP_ADDRESS
始终可用。一般情况下,情况并非如此,您可能还想查看PR_EMS_AB_PROXY_ADDRESSES
。
以上是关于比较两个VBA代码以获取mailitem的SMTP地址的主要内容,如果未能解决你的问题,请参考以下文章
VBA Outlook Mailitem - 不显示所有项目
为啥编码标头内容类型:text/html;在 Outlook 插件中使用 MailItem 时缺少 GMAIL 的 SMTP 服务器:SMTP.GMAIL.COM?