Отправить письмо с большими вложениями с помощью библиотеки MS Graph - PullRequest
0 голосов
/ 07 ноября 2019

Недавно 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();

я получаю эти ошибки:

  1. Не удалось найти тип или имя пространства имен AttachmentItem (вы не используетедиректива или ссылка на сборку?)
  2. Имя 'AttachmentType' не существует в текущем контексте
  3. '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

1 Ответ

0 голосов
/ 07 ноября 2019

Эта функциональность в Preview (он же Beta). Поскольку эти API и ресурсы существуют только в графической бета-версии, вы не можете использовать версию GA библиотеки Microsoft.Graph . Вам необходимо использовать версию библиотеки Microsoft.Graph.Beta .

...