将.msg文件附加到HTTP请求



我有一个在outlook上运行的VSTO程序。该程序在outlook中添加了ribbon按钮当我点击按钮时,程序下载。msg文件,并在HTTP Post Request中将该文件附加到WS。

因为我不想破坏用户的电脑。我需要一个想法如何传输。msg文件而不临时保存到用户计算机上的文件夹

程序使用MailItem savea()函数

MailItem mailItem = (selObject as MailItem);
mailItem.SaveAs(attchment.full_path, Outlook.OlSaveAsType.olMSG);

Thanks for help

Outlook对象模型没有提供任何其他方法来提取消息的字节数组。因此,使用OOM将邮件保存到磁盘是一种正确的方法。如果您处理Exchange Server或Graph API,您也可以考虑使用EWS(请参阅探索EWS管理的API, EWS和Exchange中的web服务以获取更多信息)。

传送后,不要忘记删除磁盘上保存的文件。


一个可能的解决方案是静默转发邮件项目,而不是通过POST请求上传它们。在这种情况下,您将不必处理可能减慢解决方案的磁盘IO操作。

Outlook不允许您这样做,但是您可以在将MSG文件附加到HTTP请求后立即删除它。

也没有性能增益-文件数据可能会留在驱动器缓存中,甚至可能不会被写入磁盘,如果它被快速删除;虽然文件的速度很慢,但它们仍然比网络快几个数量级。

最新更新