VSTO Outlook.Recipients 值以不同于内部电子邮件地址的方式显示外部电子邮件地址
VSTO Outlook.Recipients Value Displaying External Email Addresses Differently than Internal Email Addresses
我们有一个 Outlook VSTO 加载项正在检查 Outlook.Recipients 域以查看收件人是否在我们的网络外部
Dim objRecipients As Outlook.Recipients
假设我们要遍历 2 个收件人并检查域:
Do While objRecipients.Count >= loopCount
If InStr(1, objRecipients(loopCount).Address, "@") Then
...
End If
Loop +=1
Loop
对于我们看到的外部 objRecipient(loopCount).Address,说:
gmail.com
哪个好
但是,对于内部地址,我们看到的似乎是 LDAP/Exchange 地址,而不是像这样的 SMTP 地址:
/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=9asd9asd9d9d9asd9asd9asd9asd9asd9asd-Fred Smith"
这似乎才刚刚开始发生,但不确定为什么或如何解决这个问题。
知道为什么会这样吗?
谢谢
阅读这篇文章帮助我们解决了问题:
我们需要使用 Outlook.PropertyAccessor 属性 来获得正确的 SMTP 地址:
Dim objRecipients As Outlook.Recipients
Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String =
"http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
Do While objRecipients.Count >= loopCount
'set propertyaccessor object
pa = objRecipients(loopCount).PropertyAccessor
'set propertyaccessor domain based on smtp address
paDomain = pa.GetProperty(PR_SMTP_ADDRESS)
Loop +=1
Loop
我们有一个 Outlook VSTO 加载项正在检查 Outlook.Recipients 域以查看收件人是否在我们的网络外部
Dim objRecipients As Outlook.Recipients
假设我们要遍历 2 个收件人并检查域:
Do While objRecipients.Count >= loopCount
If InStr(1, objRecipients(loopCount).Address, "@") Then
...
End If
Loop +=1
Loop
对于我们看到的外部 objRecipient(loopCount).Address,说:
gmail.com
哪个好
但是,对于内部地址,我们看到的似乎是 LDAP/Exchange 地址,而不是像这样的 SMTP 地址:
/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=9asd9asd9d9d9asd9asd9asd9asd9asd9asd-Fred Smith"
这似乎才刚刚开始发生,但不确定为什么或如何解决这个问题。
知道为什么会这样吗?
谢谢
阅读这篇文章帮助我们解决了问题:
我们需要使用 Outlook.PropertyAccessor 属性 来获得正确的 SMTP 地址:
Dim objRecipients As Outlook.Recipients
Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String =
"http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
Do While objRecipients.Count >= loopCount
'set propertyaccessor object
pa = objRecipients(loopCount).PropertyAccessor
'set propertyaccessor domain based on smtp address
paDomain = pa.GetProperty(PR_SMTP_ADDRESS)
Loop +=1
Loop