Надстройка Outlook: получать вложения и рассчитывать общий размер по новой электронной почте - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю с надстройкой Outlook.У меня есть требование, чтобы я выдавал ошибку, если вложение total size > 10MB.

Я использую следующее, чтобы сохранить новое письмо как черновик

const officeIns = this.getOfficeIns();
officeIns.context.mailbox.item.saveAsync((result) => {
   cb(result.value);
});

И у меня есть следующий код, чтобы получить письмовложения

// Inside callback function to officeIns.context.mailbox.item.saveAsync let headers = new HttpHeaders(); headers = headers.set('Authorization', `Bearer ${olUserTokenObj['token']}`); const emailMessageId = officeIns.context.mailbox.convertToRestId(messageId, officeIns.MailboxEnums.RestVersion.v2_0); console.log('rest id', emailMessageId); const options = { headers: headers, withCredentials: false }; let graphApiUrl = `https://outlook.office.com/api/v2.0/me/messages`; graphApiUrl = `${graphApiUrl}/${emailMessageId}/attachments?$select=Size,Name&_=${Date.now()}`; const data = await this.httpClient.get(graphApiUrl, options).toPromise(); // ... calculating total size from `data.value`

и если при получении вложений возникла ошибка, я повторяю попытку получить вложения с задержкой 10 секунд 5

Однако вложения сохраняются через некоторое времятолько и не экономит в основном.Я вижу эту проблему больше в надстройке клиента Outlook.

Кажется, что saveAsync не сохраняет вложения.Может ли кто-нибудь помочь мне в этой проблеме

Вопросы:

  1. Можно ли использовать функцию saveAsync для сохранения вложений?

  2. Есть ли у нас какое-либо событие office.js, которое срабатывает после сохранения всех вложений на сервере?

  3. Есть ли другой способ решения этой проблемы?

Я прочитал этот документ и не нашел соответствующей информации.https://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.7/office.context.mailbox.item#saveasyncoptions-callback

1 Ответ

0 голосов
/ 27 ноября 2018

У вас могут быть проблемы с сохраненным режимом кэширования saveAsync и клиента рабочего стола.Эта проблема уже была замечена другими, и вот объяснение в одном из вопросов stackoverflow вместе с некоторым возможным смягчением проблемы.От сообщества также есть запрос на усовершенствование / функцию, которую вы можете поднять и надеяться, что это будет сделано в ближайшем будущем.

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