不同版本的Outlook中的MailItem的ConversationID

时间:2013-10-24 06:18:55

标签: c# .net outlook outlook-addin mailitem

我正在开发outlook插件,它会将邮件记录到我们的系统中。 我们希望每个邮件线程/链一个条目。 我们正在开发插件的两个版本(对于outlook 2003和2010)。

对于outlook 2010,我使用MailItem的属性ConversationID来识别邮件线程。 使用这个属性是否安全?对于mailthread,sessionId是否相同,无论交换服务器的版本是什么?

对于outlook 2003,我找不到这个属性。我看到ConversationIndex属性。这可以用于任何方式吗?

我们的一些用户将使用2003,有些将使用2010,我们用于邮件线程的ID应该在不同版本的outlook中相同。

2 个答案:

答案 0 :(得分:2)

PR_CONVERSATION_INDEX如果我没记错的话,MAPI属性可以用作Outlook 97。

Outlook 2003对象模型不公开该属性,但它仍然存在于MAPI级别。由于PropertyAccessor在Outlook 2007之前未公开,因此您的选项为CDO 1.21或Redemption

答案 1 :(得分:0)

以下是我正在考虑从outlook中识别记录到我们系统的对话。

Outlook 2003 -

使用(ConversationIndex的前44个字符)+用户ID。我不得不追加用户ID,因为同一邮件链的会话索引对于不同的用户机器可能是不同的。

Outlook 2010 -

使用会话ID。我的假设是这个对话ID是在服务器上生成的,并且与所有用户机器上的邮件线程相同。

如果我遗漏了任何东西,请纠正我。