用VBA脚本提取电子邮件元数据

我有一个文件夹充满了自定义消息类(iXOS档案,与OpenText企业档案相关)的电子邮件。 每个电子邮件都有一个自定义元数据属性,在Outlook中可见,称为“文档标识符”。 我试图使用VBA脚本从电子邮件中提取此信息。 我发现了一个脚本,从电子邮件中提取常用元数据(To,From,Subject等),并将其写入Excel。 这很好。

http://spreadsheetpage.com/index.php/tip/getting_a_list_of_file_names_using_vba/

我试过debugging脚本并查看电子邮件属性,但找不到包含自定义元数据的任何集合。

有谁知道我可以通过VBA脚本访问自定义元数据?

您可能无法使用FileSystemObjectDIR函数(如上面链接的代码中所述)执行此操作。

我无法testing没有一个合适的例子,但这可能工作:

  1. 将Outlook绑定到Excel
  2. 在Outlook中打开MSG文件
  3. 使用Outlook对象模型来查看MSG文件的.ItemProperties

实际上,您将在一个循环中进行设置,类似于您的示例代码,但为了testing的目的,请在单个文件中尝试一下,看看它是否对您有帮助。

 'Requires reference to Outlook object model Sub foo() Dim olApp As Outlook.Application Dim msg As Outlook.MailItem Dim properties As Outlook.ItemProperties Dim p As Long Set olApp = GetObject(, "Outlook.Application") Set msg = olApp.CreateItemFromTemplate("C:\your filename.msg") Set properties = msg.ItemProperties For p = 0 To properties.Count - 1 Debug.Print properties(p).Name Next Set msg = Nothing Set olApp = Nothing End Sub 

这应该在即时窗口中打印ItemProperties的列表,滚动浏览该列表并检查是否包含您正在查找的“文档标识符”。 如果是这样,那么这应该工作,你可以根据需要进行修改,做任何你想做的事情。

除非您可以提供此电子邮件格式的testing/样本版本,否则我无法获得进一步的帮助。

干杯。