Как я могу получить вложение содержимого из почты Outlook в Node.js надстройке Outlook? - PullRequest
0 голосов
/ 10 марта 2020

Прежде всего, будучи студентом, мне не хватает опыта, чтобы понять все о том, что я пробовал и что я пытаюсь. Но, тем не менее, я чувствую, что перепробовал практически все решения, доступные на net.

. Я разрабатываю надстройку Outlook на основе Yeoman (полная javascript с Node.js) для моего компании, и я пришел к тому, что мне нужно получать вложения из почты, а не только информацию, такую ​​как размер, тип файла или название вложения, мне нужен полный контент, в base64, если это возможно (чтобы произвести .eml файл, содержащий тело письма и вложенные файлы).

Я нашел несколько способов сделать это, проблема в том, что ни один из них не работает:

  • сначала я попробовал с грязным Документация Microsoft и первое найденное мной решение: https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/get-attachments-of-an-outlook-item, проблема в том, что с этим решением мне нужно использовать c#, но моя надстройка заполнена js и мне нужно найти решение, которое работает с JS и Node.js
  • , затем я искал решение, позволяющее мне так или иначе общаться с сервером Exchange для получения содержимого вложений, и я нашел это : https://github.com/gautamsi/ews-javascript-api, но это не работало с надстройкой, ориентированной на браузер (и мне нужно, чтобы надстройка работала как на клиенте, так и на браузере), поэтому я воспользовался этим: https://github.com/gautamsi/ews-js-api-browser. Я нашел несколько примеров кода в первой ссылке и здесь: Сохранение вложений Outlook в электронную почту с помощью ews- javascript -api npm в node JS, которые помогли мне что-то построить (используя синтаксис примера второй ссылки на пример кода третьей ссылки), который должен был работать, но до такой степени, что я пытаюсь получить вложения из почты, я получаю много информации из вложения, но все, что связано с его содержимым, равно нулю, и следующий шаг, когда я «Загрузить» файл возвращает ошибку 500 из «службы» с «документ пуст», и я до сих пор не знаю, почему.
  • наконец, я попытался взять отступите назад, просматривая google для api office и как получить вложение контента, и я нашел эту ссылку: https://blog.mastykarz.nl/office-365-unified-api-mail/, которая почти выглядела хорошо, чтобы быть правдой, и я был прав: согласно Microsoft do c, мне нужен токен, чтобы заставить работать офис 365 api url, токен, выданный Azure AD, когда администратор разрешает вам его получить (или я так думаю, это это часть, где Microsoft делает c является беспорядком). Проблема в том, что при подключении в Azure AD я получаю сообщение об ошибке, отображаемое на экране с веб-сайта (абсолютно нет сведений об ошибке), и некоторые места, к которым мне нужно получить доступ, чтобы мой токен просто не работал, отображая другое сообщение об ошибке без каких-либо подробностей или просто без загрузки.

Я максимально уменьшил размер моего вопроса, не желая топить вас информацией, примерами кодов, ссылками и фотографиями, извините, если он выглядит слишком длинным и слишком скудным в деталях.

Спасибо за ваше время, не стесняйтесь дать любое решение, предложение или совет, который придет вам в голову!

1 Ответ

0 голосов
/ 12 марта 2020

делает то же самое, решение, которое я нашел:

  • Получить exchangeToken в клиенте (Office.context.mailbox.getCallbackTokenAsync())
  • Отправить токен, attachmentsIds, emailID на сервер (C# в моем case, nodejs в вашем случае)
  • Используйте EWS Managed API 2.0 или в вашем случае ews- javascript -api для обработки загрузки миметаконтента электронной почты (содержит электронную почту + вложения) или вложения mimecontent.
  • Загрузите файл в другой сервис или сделайте с ним все, что захотите.

Прежде чем перейти на C# для серверной части, я использовал nodejs для тестирования, поэтому, если у вас есть вопросы, не стесняйтесь спрашивать.

...