代码之家  ›  专栏  ›  技术社区  ›  Thomas

如何将Outlook发送的电子邮件与对应的Outlook草稿(MAPI邮件项)唯一匹配?

  •  2
  • Thomas  · 技术社区  · 8 年前

    我正在尝试在草稿发送后将Outlook“草稿”与其对应的Outlook“已发送电子邮件”进行匹配,但看起来我没有任何进展。

    我试过用 ConversationId 这几乎奏效了。草稿可以通过 会话ID 但问题是,用户可以创建两个不同的草稿,从而破坏此逻辑(因为两个草稿具有相同的逻辑 会话ID 因此不能唯一地标识发送的电子邮件。

    我试过用 EntryId 属性,但当然,草稿和发送的电子邮件上的属性不同。我试过看看 parent EntryId 看看是否有任何东西可以被过滤掉,但这也不值得。

    我在MAPI里挖得更深,发现了 PR_INTERNET_MESSAGE_ID_W 但草案上没有。

    本质上(对这种漫无边际的说法感到抱歉),我的问题是,如何在发送草稿后,将一份Outlook草稿唯一地标识到其关联的已发送电子邮件中?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Dmitry Streblechenko    8 年前

    你可以使用 PR_SEARCH_KEY -但它可以改变(见 https://blogs.msdn.microsoft.com/stephen_griffin/2009/12/14/pr_search_key-and-draft-messages/ ) PR_RECORD_KEY 以及 PR_ENTRYID 复制时更改。

    为什么不使用 MailItem.PropertyAccessor.SetProperty ?只是不要使用 MailItem.UserProperties 因为这会导致消息以TNEF格式发送。

    推荐文章