Разрешения Entra
Мы вызываем Graph API из приложения ASP.NET, используя пакет Microsoft.Graph NuGet версии 5.56. .0.
Приложение проверяет подлинность следующим образом:
Код: Выделить всё
private async Task InitGraphServiceClient()
{
var clientSecret = await GetClientSecret();
var settings = graphSettings.Value;
var credential = new ClientSecretCredential(settings.TenantId, settings.ClientId, clientSecret);
return new GraphServiceClient(credential, ["https://graph.microsoft.com/.default"]);
}
Код: Выделить всё
// ... code above omitted
var fromAddr = ""; // Injected from configuration
var requestBody = new SendMailPostRequestBody
{
Message = new Message
{
Subject = subject,
Body = new ItemBody
{
ContentType = BodyTypeToGraphApiBodyType(bodyType),
Content = body
},
ToRecipients = new List
{
new()
{
EmailAddress = new EmailAddress
{
Address = to
},
},
},
Attachments = attachments.Select(
a => new FileAttachment
{
OdataType = "#microsoft.graph.fileAttachment",
ContentBytes = Convert.FromBase64String(a.Base64Content),
Name = a.Name,
ContentType = a.ContentType,
} as Microsoft.Graph.Models.Attachment
)
.ToList()
},
SaveToSentItems = true
};
var graphServiceClient = await graphServiceClientProvider.GetGraphServiceClientAsync();
await graphServiceClient.Users[fromAddr].SendMail.PostAsync(requestBody);
До сих пор я пробовал следующее:
[*]Включение свойств «От» и/или «Отправитель» в тело запроса
[*]Удаление на основе этого свойства «SaveToSentItems = true» документацию можно найти здесь https://learn.microsoft.com/en-us/graph ... quest-body
Ни одна из этих вещей не оказала никакого эффекта, поэтому мне остается только гадать, как решить эту проблему.
Подробнее здесь: https://stackoverflow.com/questions/788 ... -using-gra