我正在开发一个Outlook加载项,它应该允许用户将处于撰写模式的Outlook电子邮件另存为.eml文件,并在发送前将其保存到Google Drive / Dropbox。 我能够获取邮件正文,抄送,收件人,主题等,但无法获取附件。 有没有一种方法可以使用ItemId获取项目的所有详细信息(包括附件)并将其另存为.elm文件?
在撰写模式下,单击发送按钮后,我设法获得ItemId并使用其余的消息数据。
Office.context.mailbox.item.saveAsync(function (result) {
itemId = result.value;
var soapToGetItemData = getItemDataRequest(result.value);
Office.context.mailbox.makeEwsRequestAsync(soapToGetItemData, function (asyncResult) {
if (asyncResult.error != null) {
updateAndComplete("EWS Status: " + asyncResult.error.message);
return;
}
var parser = new DOMParser();
var doc = parser.parseFromString(asyncResult.value, "text/xml");
var values = doc.childNodes[0].getElementsByTagName("t:ItemId");
var ItemId = values[0].attributes['Id'].value;
var changeKey = values[0].attributes['ChangeKey'].value;
var soapToSendItem = getItemRequest(ItemId, changeKey);
Office.context.mailbox.makeEwsRequestAsync(soapToSendItem, function (asyncResult) {
if (asyncResult.error != null) {
statusUpdate("EWS Status: " + asyncResult.error.message);
return;
}
console.log('fulldata');
console.log(asyncResult);
});
});
});
asyncResult具有所组成消息的完整数据。
如何使用makeEwsRequestAsync将邮件另存为.eml到硬盘中?