【问题标题】:VSTO 2010 - How do I take and save attachments or messages from OutlookVSTO 2010 - 如何从 Outlook 获取和保存附件或邮件
【发布时间】:2016-08-04 11:10:43
【问题描述】:

长话短说 - 我正在使用 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);

我想 Outlook 会完全不同,因为我必须考虑:

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

如果可以回答/解决上述任何问题,我将不胜感激。谢谢你

(我对 Stack Overflow 很陌生,据我所知,这个问题遵循我在网站上阅读的规则。如果没有,请您礼貌地告诉我,我将删除它)

【问题讨论】:

    标签: c# outlook ms-office vsto


    【解决方案1】:

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

    1 - 如果你想获得选定的项目然后使用

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

    如果你想打开项目然后使用

    var opened = Application.ActiveInspector.currentItem;
    

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

    4 - 您当然可以尝试检查所有附件的扩展名并做出决定,但我不确定您在这里的确切意思

    5 - MailItem 对象当然也有 Body 属性,因此您可以获取所有文本

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

    【讨论】:

    • 谢谢你,在这个主题上找到很多帮助非常困难,所以你给了我一个很好的起点来构建它。我所说的数字 4 的意思也许是我可以找到一种方法来确定附件的文件格式并执行 if 或 switch 来决定如何处理这个附件,所以我的主要问题是确定文件格式是什么或者是否我可以选择文件名中包含“.jpg”或“.docx”等的部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2023-03-27
    • 2014-04-07
    • 2020-09-03
    • 2015-05-29
    相关资源
    最近更新 更多