Недавно 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["[email protected]"]
.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 (вам не хватает директивы using или ссылки на сборку?)
- Имя AttachmentType не существует в текущем контексте.
- 'IMessageAttachmentsCollectionRequestBuilder' не содержит определения для 'CreateUploadSession' и не может быть найден доступный метод расширения 'CreateUploadSession', принимающий первый аргумент типа 'IMessageAttachmentsCollectionRequestBuilder' (вам не хватает директивы using или ссылки на сборку?)
Я добавил ссылки как на стабильную, так и на бета-версию библиотек графов (Microsoft.Graph, Microsoft.Graph.Beta) (раньше я использовал конечную точку бета), но я не могу найти 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