我收到带有其他 Outlook 邮件(* .msg)作为附件的 Outlook 邮件。我需要 txt 格式的文件(或 Word 可以打开的其他任何文件)。
我似乎有两种选择:
-
将附件另存为我的驱动器中的文本文件,而不是 msg 文件。我不知道如何手动或通过代码做到这一点。
-
将附件另存为 msg 文件(在 SO 上有一个宏可以执行此操作),然后打开每个文件并将其保存为 txt。但是 Outlook 2010 中的“文件->打开”没有打开 msg 文件的选项。我看到打开文件的唯一方法是(手动)在“文件资源管理器”中查看该文件夹并对其进行 double-click。打开后,我可以使用File-> SaveAs。
-
我可以在 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 回答
将嵌入的邮件附件另存为 MSG 文件(
Attachment.SaveAsFile
),然后打开,然后使用Namespace.OpenSharedItem
。如果要以嵌入式消息附件的形式访问嵌入式消息附件而不保存它们,则需要扩展 MAPI(仅
IAttach::OpenProperty(PR_ATTACH_DATA_OBJ, IID_IMessage, ...)
,C 或 Delphi)或赎回(公开Attachment.EmbeddedMsg
属性)。