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);

我想前景会大不相同,因为我必须考虑:

  1. 定义活动电子邮件(我想这在语法上与ActiveDocument非常相似(
  2. 检查是否有附件
  3. 电子邮件中的附件数
  4. 上述附件的格式以及我是否可以将其转换为PDF
  5. 如果可以保存电子邮件内容

如果以上任何问题都能得到解答,我将不胜感激。谢谢

(我是Stack Overflow的新手,据我所知,这个问题遵循了我在网站上阅读的规则。如果没有,你能礼貌地告诉我吗,我会删除它(

VSTO 2010-如何从Outlook获取和保存附件或邮件

我可以回答您的一些问题,而不是全部问题。

1-如果你想获得所选项目,那么使用

var ex =  Application.ActiveExplorer;
var selected = ex.Selection

如果你想得到打开的项目,然后使用

var opened = Application.ActiveInspector.currentItem;

2&3-以上将返回MailItem对象,它有一个名为Attachments的属性,因此您可以检查是否有

4-你当然可以尝试检查所有附件的扩展并做出决定,但我不确定你在这里的到底是什么意思

5-当然,MailItem对象也有Body属性,所以你可以获得所有的文本

可能最困难的部分是保存到PDF,如果是图像,我不知道如何做到这一点