首页 文章

VBA Outlook 代码打开“邮件项目”和“另存为”文本

提问于
浏览
1

我收到带有其他 Outlook 邮件(* .msg)作为附件的 Outlook 邮件。我需要 txt 格式的文件(或 Word 可以打开的其他任何文件)。

我似乎有两种选择:

  1. 将附件另存为我的驱动器中的文本文件,而不是 msg 文件。我不知道如何手动或通过代码做到这一点。

  2. 将附件另存为 msg 文件(在 SO 上有一个宏可以执行此操作),然后打开每个文件并将其保存为 txt。但是 Outlook 2010 中的“文件->打开”没有打开 msg 文件的选项。我看到打开文件的唯一方法是(手动)在“文件资源管理器”中查看该文件夹并对其进行 double-click。打开后,我可以使用File-> SaveAs

  3. 我可以在 VBA 中打开并保存文件。可以吗(似乎您无法像在 Word 或 Excel 中那样在 Outlook 中记录宏,否则我会尝试 it.)

编辑:我尝试了 Dmitri 的建议,这似乎起作用:

Dim oNamespace As NameSpace
 Dim oFolder As Folder

 ' Get a reference to a NameSpace object.
   Set oNamespace = Application.GetNamespace("MAPI")

 ' Open the file containing the shared item.
   Set oSharedItem = oNamespace.OpenSharedItem("D:\temp.msg")

' Save the item to the  folder.
   oSharedItem.SaveAs "D:\temp.txt"

1 回答

  • 1

    将嵌入的邮件附件另存为 MSG 文件(Attachment.SaveAsFile),然后打开,然后使用Namespace.OpenSharedItem

    如果要以嵌入式消息附件的形式访问嵌入式消息附件而不保存它们,则需要扩展 MAPI(仅IAttach::OpenProperty(PR_ATTACH_DATA_OBJ, IID_IMessage, ...),C 或 Delphi)或赎回(公开Attachment.EmbeddedMsg属性)。

相关问题