VSTO 2010-如何从Outlook获取和保存附件或邮件
本文关键字:保存 获取 2010- Outlook VSTO | 更新日期: 2023-09-27 18:01:00
长话短说-我正在使用VSTO创建一个工具,以PDF形式对文档进行数字存档,并自动将它们排序到适当的文件夹中。有了Microsoft Word 2010插件,我已经达到了我想要的确切结果,但现在我必须调整它来使用Outlook 2010。
在Word中,我可以通过参考我的活动文档
doc = Globals.ThisAddIn.Application.ActiveDocument;
并且设置文件格式,我使用
FileFormat = WdSaveFormat.wdFormatPDF;
我通过保存到
doc.ExportAsFixedFormat(Name.ToString(), WdExportFormat.wdExportFormatPDF, false, WdExportOptimizeFor.wdExportOptimizeForPrint, WdExportRange.wdExportAllDocument, 0, 0, WdExportItem.wdExportDocumentContent, false, false, WdExportCreateBookmarks.wdExportCreateWordBookmarks, false, true, true, ref FixedFormatExtClassPtr);
我想前景会大不相同,因为我必须考虑:
- 定义活动电子邮件(我想这在语法上与
ActiveDocument
非常相似( - 检查是否有附件
- 电子邮件中的附件数
- 上述附件的格式以及我是否可以将其转换为PDF
- 如果可以保存电子邮件内容
如果以上任何问题都能得到解答,我将不胜感激。谢谢
(我是Stack Overflow的新手,据我所知,这个问题遵循了我在网站上阅读的规则。如果没有,你能礼貌地告诉我吗,我会删除它(
我可以回答您的一些问题,而不是全部问题。
1-如果你想获得所选项目,那么使用
var ex = Application.ActiveExplorer;
var selected = ex.Selection
如果你想得到打开的项目,然后使用
var opened = Application.ActiveInspector.currentItem;
2&3-以上将返回MailItem对象,它有一个名为Attachments的属性,因此您可以检查是否有
4-你当然可以尝试检查所有附件的扩展并做出决定,但我不确定你在这里的到底是什么意思
5-当然,MailItem对象也有Body属性,所以你可以获得所有的文本
可能最困难的部分是保存到PDF,如果是图像,我不知道如何做到这一点