Недавно 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
};
Message draft = await graphClient
.Users["test@test.onmicrosoft.com"]
.Messages
.Request()
.AddAsync(mail);
но когда я пробую фрагмент из документов:
var attachmentItem = new AttachmentItem
{
AttachmentType = AttachmentType.File,
Name = "flower",
Size = 3483322
};
await graphClient.Me.Messages["AAMkADI5MAAIT3drCAAA="].Attachments
.CreateUploadSession(attachmentItem)
.Request()
.PostAsync();
я получаю эти ошибки:
- Не удалось найти тип или имя пространства имен AttachmentItem (вы не используетедиректива или ссылка на сборку?)
- Имя 'AttachmentType' не существует в текущем контексте
- 'IMessageAttachmentsCollectionRequestBuilder' не содержит определения для 'CreateUploadSession' и недоступного метода расширения 'CreateUploadSession'можно принять первый аргумент типа' IMessageAttachmentsCollectionRequestBuilder '(вы пропустили директиву using или ссылку на сборку?)
Я добавил ссылки как на стабильную, так и на бета-версию библиотек графов. (Microsoft.Graph, Microsoft.Graph.Beta) (раньше я использовал бета-версию), но не могу найтиd AttachmentItem
.
Я искал два репозитория (https://github.com/microsoftgraph/msgraph-sdk-dotnet, https://github.com/microsoftgraph/msgraph-beta-sdk-dotnet) для AttachmentItem, но ничего не нашел.
Отправка больших писемвложения - это довольно новая функция (документы получены с 25 октября 2019 г.), но, согласно документам, это должно поддерживаться.
Неправильны ли документы? Как я могу создать сеанс загрузки и загрузить вложения? Должен ли я создавать запросы вручную? Или я могу использовать библиотеку Microsoft.Graph?
Я вижу только CreateUploadSession
для диска - https://github.com/microsoftgraph/msgraph-sdk-dotnet/search?q=CreateUploadSession&unscoped_q=CreateUploadSession