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

时间:2018-07-31 19:07:20

标签: email outlook outlook-addin mapi

在草稿发送后,我正在尝试将前景“草稿”与其相应的前景“已发送电子邮件”进行匹配,但看来我什么都没得到。

我已经尝试过使用ConversationId了,这几乎奏效了。草稿可以通过ConversationId与发送的电子邮件进行匹配,但是问题在于用户可以创建2个不同的草稿,从而破坏了这种逻辑(因为2个草稿将具有相同的ConversationId,因此无法唯一标识发送的电子邮件。

我尝试使用EntryId属性,但当然,草稿上的属性与发送的电子邮件上的属性不同。我尝试查看parent EntryId是否可以滤除任何内容,但这都不值得。

我已经对MAPI进行了更深入的研究,发现PR_INTERNET_MESSAGE_ID_W,但是草稿中并不存在。

本质上(对不起,很抱歉),我的问题是我如何在与其关联的已发送电子邮件(发送草稿后)中唯一标识一个Outlook草稿?

1 个答案:

答案 0 :(得分:2)

您可以使用PR_SEARCH_KEY-但它可以更改(请参阅https://blogs.msdn.microsoft.com/stephen_griffin/2009/12/14/pr_search_key-and-draft-messages/)。复制时PR_RECORD_KEYPR_ENTRYID都会更改。

为什么不使用MailItem.PropertyAccessor.SetProperty设置自己的命名属性?只是不要使用MailItem.UserProperties,因为那样会使邮件以TNEF格式发送。