vba - 检索同一线程中的所有 Outlook 邮件

标签 vba outlook ms-office office-interop outlook-addin

我们正在 Outlook 之上构建某种通信管理系统。我们希望实现的重要任务之一是检索同一线程中的所有消息(.msg 文件??)及其附件,并将它们放在 CMS 存储库内的同一文件夹中。

我们面临的问题是我们如何以编程方式知道特定消息(或.msg 文件??)和附件属于特定线程。

假设对于第一条消息,我们在存储库中创建一个文件夹。然后,我们希望作为对原始邮件的回复发送的所有邮件(以及附件)自动放入同一文件夹中。

我尝试查找 .msg 文件中是否设置了任何 header 来识别线程,但没有找到任何内容。

但仍然好奇 Outlook 客户端如何显示按通信线程层次结构排列的消息。因此,我们必须有某种方法可以检索存储在某处的信息。我只是想知道如何访问它。

最佳答案

分组保存在邮件标题中指示:“Message-ID:”、“References:”和“In-Reply-To:”,您可以使用我之前找到的以下功能使用 Outlook VBA 进行查看。

Private Function GetInetHeaders(olkMsg As Outlook.MailItem) As String
    ' Purpose: Returns the internet headers of a message.'
    ' Written: 4/28/2009'
    ' Author:  BlueDevilFan'
    ' Outlook: 2007'
    Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001E"
    Dim olkPA As Outlook.PropertyAccessor
    Set olkPA = olkMsg.PropertyAccessor
    GetInetHeaders = olkPA.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS)
    Set olkPA = Nothing
End Function

关于vba - 检索同一线程中的所有 Outlook 邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350338/

相关文章:

html - 调试 Office 的任务 Pane 应用程序

VBA Excel - 评估函数 - 如何在乘法之前添加

vba - 使用VBA在Excel中选择多行

VBA vlookup 具有定义的范围和其他工作簿中的文件

c# - 有没有一种方法可以根据特定规则自动重新发送 Outlook 2007 和 MS Exchange 的电子邮件?

vba - Outlook:如何使用 VBA 将选定的邮件发布到 Web 服务器?

excel - 当我保存 CSV 并再次编辑时,列合并了

vba - 尝试删除 VBA 中的单元格范围时出错

r - 如何使用 R RDCOMClient 检索 Outlook 收件箱电子邮件?

iis - 为什么 PPTX 从网站下载为 ZIP 文件?