Невозможно отправить почту с помощью графического API - PullRequest
0 голосов
/ 05 августа 2020

Невозможно отправить почту с помощью Microsoft-Graph-API (Azure AD B2 c).

Я пробовал следующий код, но не работает

            IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
            .Create(appId)
            .WithTenantId(tenantId)
            .WithClientSecret(clientSecret)
            .Build();

            ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);

            GraphServiceClient graphClient = new GraphServiceClient(authProvider);

            Message message = new Message
            {
                Subject = "Subject of mail",
                Body = new ItemBody
                {
                    ContentType = BodyType.Text,
                    Content = "Mail content",
                },
                ToRecipients = new List<Recipient> 
                { 
                    new Recipient 
                    {
                        EmailAddress = new EmailAddress
                        {
                            Address = email,
                        }
                    }
                },
            };

            await graphClient.Me.SendMail(message).Request().PostAsync();

Это дает следующую ошибку :

Code: OrganizationFromTenantGuidNotFound
Message: The tenant for tenant guid 'xxxxxx' does not exist.
Inner error:
    AdditionalData:
    requestId: 0ecdb3f9-a210-4259-bd62-0c79e757d1f6
    date: 2020-08-05T02:17:07
    request-id: 0ecdb3f9-a210-4259-bd62-0c79e757d1f6
ClientRequestId: 0ecdb3f9-a210-4259-bd62-0c79e757d1f6

Примечание: Также дано разрешение для Mail.Send

1 Ответ

0 голосов
/ 06 августа 2020

Это связано с тем, что ваш клиент Azure AD B2 C не имеет онлайн-лицензии Exchange по подписке O365.

Таким образом, пользователь B2 C не имеет почтового ящика для отправки электронной почты, хотя его UPN выглядит как адрес электронной почты.

Попробуйте назначить подписку O365 арендатору и добавить онлайн-лицензию Exchange пользователю B2 C, если возможно.

...