Microsoft Graph: Как получить псевдоним из сообщения электронной почты? - PullRequest
0 голосов
/ 19 февраля 2020

Когда я использую Microsoft Graph для получения сообщения toRecipients или internetMessageHeaders, я не могу найти фактический псевдоним электронной почты, на который было отправлено письмо. Как мне получить псевдоним? Он всегда возвращает «родительскую» учетную запись, а не учетную запись с псевдонимом.

Например, в качестве псевдонима для учетной записи email1@company.com отображается alias1@company.com.

Запрос:

https://graph.microsoft.com/v1.0/users/email1@company.com?$select=proxyAddresses

Ответ:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(proxyAddresses)/$entity",
    "proxyAddresses": [
        "smtp:alias1@company.com",
        "X500:/o=Org1/ou=External (xxxxx)/cn=Recipients/cn=00000000000000000000",
        "x500:/o=ExchangeLabs/ou=Exchange Administrative Group (xxxxx)/cn=Recipients/cn=1111111111111111",
        "smtp:email1@company.mail.onmicrosoft.com",
        "X500:/o=Org1/ou=Exchange Administrative Group (xxxxx)/cn=Recipients/cn=yyyyyyyy",
        "smtp:email1@company.onmicrosoft.com",
        "SMTP:email1@company.com"
    ]
}

Затем я отправляю электронное письмо по адресу alias1@company.com. Я не вижу псевдоним при получении toRecipients или internetMessageHeaders, только родительский аккаунт email@company.com.

Запрос:

https://graph.microsoft.com/v1.0/me/messages/{messageId}?$select=toRecipients,internetMessageHeader

Ответ:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('...')/messages(toRecipients,internetMessageHeaders)/$entity",
    "@odata.etag": "W/\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"",
    "id": "{messageId}",
    "internetMessageHeaders": [
        {
            "name": "Received",
            "value": "...."
        },
        {
            "name": "Received",
            "value": "..."
        },
        {
            "name": "Received",
            "value": "..."
        },
        {
            "name": "Authentication-Results",
            "value": "company.com; dkim=none (message not signed) header.d=none;company.com; dmarc=none action=none header.from=company.com;"
        },
        {
         ...
        }
    ],
    "toRecipients": [
        {
            "emailAddress": {
                "name": "FirstName LastName",
                "address": "email1@company.com"
            }
        }
    ]
}

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Я нашел это в другой SO статье: Можете ли вы получить PR_TRANSPORT_MESSAGE_HEADERS 0x007D от. Net Microsoft Graph API?

Это вернет нужные вам заголовки

1 голос
/ 19 февраля 2020

Вы не можете.

Microsoft Exchange Server, Office 365 и Outlook.com (ранее Hotmail) не сохраняют (или, по крайней мере, не выставляют) значение SMTP RCPT TO (то есть адрес конверта) - который отличается от заголовков To:, Cc: и Bcc: (учтите, что заголовок Bcc обычно вообще не отправляется получателю).

Вот как пользователи почты могут получать электронные письма, которые выглядят не так, как будто они предназначены для них (поскольку почтовые серверы используют значение RCPT TO для маршрутизации электронной почты и игнорируют заголовок To:.

Обратите внимание, что -спам-программа часто помечает электронные письма, когда значение RCPT TO не появляется ни в одном из заголовков To:, Cc: или Bcc:, как в массовых рассылках спама конца 1990-х - начала 200-х годов. персонализированные заголовки To:.

Предупреждение: содержание редакции ниже:

Я отправил запрос с поддержкой Office 365 (поскольку я подписчик Enterprise, что я надеюсь что-то значит) просить, чтобы они добавили поддержку для хранения RCPT TO адрес конверта, но он был брошен в очередь и поэтому никогда не произойдет . Это еще одна чертовски очевидная особенность системы электронной почты, которую Microsoft стойко отказывается принимать, подобно одноразовым адресам, тегам сообщений, встроенным ответам на цитаты, отделению почтовых ящиков от пользователей и древовидному представлению для цепочек бесед - и более кроме того . Ой вей.

...