我有以下场景:一个小的WPF应用程序(原型,概念证明),它应该以编程方式创建一封电子邮件(填写一些数据),并跟踪该电子邮件是否后来回复(对话跟踪)。在发送项目之前,对话ID不可用。
我面临的问题是,当项目被创建和最初保存-它有一个EntryId,但当项目被发送时,它被移动到另一个文件夹(如果有多个帐户,发送的文件夹可能不同于OlDefaultSent文件夹),当它被移动到一个交换帐户的另一个文件夹时,它的EntryId被更改,因此我失去了它的轨迹。
问题是-当我创建的项目被移动到不同的文件夹时,我如何跟踪它(这意味着EntryID也改变了)?
这里的第二个问题可能是-如果我的应用程序在EntryId更改发生时关闭,我如何找到我的项目?
发布于 2016-04-03 08:38:00
您可以跟踪DASL属性(DASL http://schemas.microsoft.com/mapi/proptag/0x300B0102) -当邮件在文件夹之间移动时,该属性不会更改。你可以使用MailItem.PropertyAccessor.GetProperty检索属性,但是Outlook Object Model不允许你在二进制属性上搜索(Items.Find),你需要扩展的MAPI (C++或Delphi)或Redemption来实现。
https://stackoverflow.com/questions/36371872
复制相似问题