Отправить письмо с большим вложением? - PullRequest
0 голосов
/ 13 февраля 2019

Я использую API-интерфейс Graph для отправки электронных писем с большими вложениями (до 20 МБ).Есть ли способ отправки писем с большими вложениями?

Предыдущие попытки с графиком привели к обнаружению ограничения на загрузку 4 МБ.В качестве альтернативы я также посмотрел на загрузку файла в OneDrive и прикрепление его по ссылке, но я считаю, что он соответствует тому же пределу в 4 МБ.

Это ограничение исключает Microsoft Graph.

Я слышал, что устаревший API Outlook REST способен обрабатывать загрузки больших файлов, однако я не могу найти какой-либо способ получить доступ кOutlook REST API сегодня, похоже, устарел.Кроме того, вся документация, которую я прочитал от Microsoft, очень быстро подталкивает вас к новому API API.

Глядя на портал Azure, кажется, что нет способа разрешить моему приложению проходить проверку подлинности в API Outlook, это не так.вариант где угодно.

Для справки приведен соответствующий фрагмент, который я использовал с Graph API.

$mailBody = ...
'attachments' => [
    [
        '@odata.type' => '#microsoft.graph.fileAttachment',
        'Name' => 'file.docx',
        'ContentBytes' => $localFile
    ]
 ]
     ...

$response = $this->getGraph()->createRequest("POST", "/users/{primary-user}/sendMail")
                ->attachBody($mailBody)
                ->execute();

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете загружать файлы размером более 4 МБ в OneDrive, используя Загрузить сессию .Вместо отправки всего файла сразу, сеанс загрузки позволяет отправлять файл порциями.После загрузки всего файла сеанс закрывается, и файл становится доступным на диске.

После загрузки файла в OneDrive его можно прикрепить к электронному письму как * 1006.*.

Вы также захотите использовать различные Создать сообщение , Обновить сообщение и Отправить сообщение методы вместо упрощенных sendMail,Таким образом, ваш рабочий процесс будет выглядеть примерно так:

  1. Создать сообщение (POST /users/{id}/messages):
  2. Добавить вложение (POST /users/{id}/messages/{id}/attachments)
  3. Отправка сообщения (POST /users/{id}/messages/{id}/send)

Существует распространенное заблуждение, что Outlook REST API - это совершенно другой APIот Microsoft Graph.Хотя, конечно, есть некоторые функции Outlook REST API, которые еще не были представлены на графике, они являются тем же API за кулисами.

Microsoft Graph на самом деле является агрегатором API, а не самим API (бесполезные мелочи: График часто называют аббревиатурой AGS для «службы агрегатора»).Для базовых вызовов Graph просто направляет вызов в базовый API и переписывает ответ в нормализованном формате OData.Graph становится интересным в более сложных вызовах, где он может выполнять такие действия, как маршрутизация вызовов к нескольким базовым API, а затем объединять результаты вместе.

Если вы недовольны тем, что он делает, вы можете добавить ?whatif к вашему вызову, и Graph вернет базовую рабочую нагрузку, которую он направляет, вместо фактических результатов (то есть https://graph.microsoft.com/v1.0/me?whatif).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...