VBA/Outlook:以正确格式获取电子邮件收件人

VBA/Outlook:以正确格式获取电子邮件收件人,vba,outlook,Vba,Outlook,我正在尝试为发送的电子邮件建立一个检查,为此,我使用以下代码: Dim objMail As Outlook.MailItem Set objMail = Item Dim objRecipients As Outlook.Recipients Set objRecipients = objMail.Recipients 然后像这样使用它: Set objRecipients = objMail.Recipients For i = objRecipients.Count To 1 S

我正在尝试为发送的电子邮件建立一个检查,为此,我使用以下代码:

Dim objMail As Outlook.MailItem

Set objMail = Item

Dim objRecipients As Outlook.Recipients

Set objRecipients = objMail.Recipients
然后像这样使用它:

Set objRecipients = objMail.Recipients

For i = objRecipients.Count To 1 Step -1

vntRecipients.Add objRecipients.Item(i).Address

Debug.Print "Recipient"

Debug.Print objRecipients.Item(i).Address

Next
/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDXYXYXYXYXYXYXY)/CN=RECIPIENTS/CN=BYXXYXYXYXYXYXYXYXYXYXYXYXYX0B-S.BLALBA
战后,我所有的地址都写在网上。问题在于格式。当我查看日志文件时,我发现它并不总是一个电子邮件地址,但通常(所有内部电子邮件,但也包括外部电子邮件)是这样的:

Set objRecipients = objMail.Recipients

For i = objRecipients.Count To 1 Step -1

vntRecipients.Add objRecipients.Item(i).Address

Debug.Print "Recipient"

Debug.Print objRecipients.Item(i).Address

Next
/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDXYXYXYXYXYXYXY)/CN=RECIPIENTS/CN=BYXXYXYXYXYXYXYXYXYXYXYXYXYX0B-S.BLALBA
有不同的格式,但我想这是由于O365 Exchange服务器

是否有任何方法可以始终获取电子邮件地址以将域与我的受信任域列表进行比较


非常感谢

我还没有测试,但文档可能建议使用以下内容:

将pa设置为Outlook.PropertyAccessor
常量PR_SMTP_地址作为字符串=”https://schemas.microsoft.com/mapi/proptag/0x39FE001E" 
设置pa=objRecipients.Item(i).PropertyAccessor
Debug.Print objRecipients.Item(i).name&“SMTP=“&pa.GetProperty(PR\u SMTP\u地址)

来源:

谢谢,但我知道这已经不起作用了,因为当我访问刚刚获得的url时,架构不可用error@dehein2您需要检查
SenderEmailType
,然后获取电子邮件地址请参见此处的示例