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

时间:2014-09-15 16:08:28

标签: excel vba email excel-vba

我有一个充满电子邮件的文件夹,这是一个自定义邮件类(iXOS-Archive,与OpenText Enterprise Archive相关)。每封电子邮件都有一个自定义元数据属性,在Outlook中可见,称为“文档标识符”。我正在尝试使用VBA脚本从电子邮件中提取此信息。我找到了一个脚本,它从电子邮件中提取公共元数据(To,From,Subject等)并将其写入Excel。这很好用。

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

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

有谁知道如何通过VBA脚本访问自定义元数据?

1 个答案:

答案 0 :(得分:2)

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

如果没有合适的例子,我无法测试,但这可能会有效:

  1. 将Outlook绑定到Excel
  2. 在Outlook中打开MSG文件
  3. 使用Outlook对象模型查看MSG文件.ItemProperties
  4. 实际上,您将在循环中设置它,类似于您的示例代码,但为了测试,请在单个文件上试一试,看看这是否对您有帮助。

    '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列表,滚动查看该列表并检查您正在寻找的那个 - "文档标识符" - 已经包括了。如果是这样,那么这应该有效,你可以根据需要修改你想做的任何事情。

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

    干杯。