VBA / Outlook: получение получателей электронной почты в правильном формате - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь создать проверку для исходящих писем и для этого я использую следующий код:

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

Afterwars I У меня есть все мои адреса в vntRecipients. Проблема в формате. Когда я смотрю на файл журнала, я вижу, что это не всегда адрес электронной почты, но очень часто (все внутренние электронные письма, но также внешние электронные письма). например:

/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDXYXYXYXYXYXYXY)/CN=RECIPIENTS/CN=BYXXYXYXYXYXYXYXYXYXYXYXYXYX0B-S.BLALBA

Существуют разные форматы, но я думаю, это связано с сервером O365 Exchange.

Есть ли способ всегда получить адрес электронной почты, чтобы сравнить домен с моим список доверенных доменов?

Большое спасибо

1 Ответ

0 голосов
/ 11 марта 2020

Я не тестировал, но в документах, вероятно, предлагается использовать следующее:

Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String = "https://schemas.microsoft.com/mapi/proptag/0x39FE001E" 

Set pa = objRecipients.Item(i).PropertyAccessor 
Debug.Print objRecipients.Item(i).name & " SMTP=" & pa.GetProperty(PR_SMTP_ADDRESS)

Источник: https://docs.microsoft.com/en-us/office/vba/outlook/concepts/address-book/obtain-the-e-mail-address-of-a-recipient

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