Недавно Microsoft объявила , что можно отправлять электронные письма с вложениями размером более 4 МБ.
С небольшими вложениями мы смогли сделать все за один запрос. Теперь мы должны создать черновик, загрузить вложения и затем отправить файл.
У меня есть рабочий код, который отправляет почту в одном запросе:
var confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithClientSecret(clientSecret)
.WithTenantId(tenant)
.Build();
var authenticationProvider = new ClientCredentialProvider(confidentialClientApplication);
var graphClient = new GraphServiceClient(authenticationProvider);
var email = new Message
{
Body = new ItemBody
{
Content = i + " Works fine! " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
ContentType = BodyType.Html,
},
Subject = "Test" + (j == 0 ? "" : " " + j),
ToRecipients = recipientList,
Attachments = att
};
await graphClient
.Users["test@test.onmicrosoft.com"]
.SendMail(email, true)
.Request()
.WithMaxRetry(5)
.PostAsync();
приведенный выше код работает нормально, нокогда я изменяю последнюю строку на:
Message draft = await graphClient
.Users["test@test.onmicrosoft.com"]
.MailFolders
.Drafts
.Messages
.Request()
.AddAsync(mail);
или на:
Message draft = await graphClient
.Users["test@test.onmicrosoft.com"]
.Messages
.Request()
.AddAsync(mail);
я получаю ошибку ErrorAccessDenied
:
Доступ запрещен. Проверьте учетные данные и повторите попытку.
Почему отправка электронной почты в одном запросе работает, но создание черновика не удается? Нужны ли какие-либо специальные разрешения?