使用加载项撰写模式将Outlook电子邮件另存为.elm文件

时间:2018-10-01 12:06:10

标签: c# .net outlook add-in office-addins

我正在开发一个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到硬盘中?

0 个答案:

没有答案