首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何判断Outlook.MailItem / Outlook.Conversation是否被忽略?

如何判断Outlook.MailItem / Outlook.Conversation是否被忽略?
EN

Stack Overflow用户
提问于 2015-10-08 20:22:12
回答 2查看 756关注 0票数 0

从邮件项目中,我可以获取对话

代码语言:javascript
运行
复制
var conv = mailItem.GetConversation();
if( conv != null )
{
   //
}

但是用户可以选择“忽略”该对话。

如何判断某个对话是否已被忽略?

EN

回答 2

Stack Overflow用户

发布于 2015-10-08 21:22:47

ConversationID属性将项与会话相关联。这些项和会话在其ConversationID属性中都具有相同的值。因此,如果不存在具有相同对话ID的项目,则用户选择忽略现有对话,或者该对话中没有其他项目。尝试使用任何低级属性资源管理器,如MFCMAPI,并查看当用户选择忽略对话时更改了哪些属性。此外,您还可以考虑处理Outlook项的PropertyChange事件以跟踪属性更改。

票数 0
EN

Stack Overflow用户

发布于 2015-10-08 23:23:50

忽略的对话存储在一个名为“对话操作设置”的隐藏文件夹中。它与收件箱处于同一级别,但处于隐藏状态:

代码语言:javascript
运行
复制
Outlook.MAPIFolder csFolder = Application.Session.GetDefaultFolder(olFolderInbox).Parent.Folders["Conversation Action Settings"];

这些项目存储在关联的内容表中。您可以在OutlookSpy中看到数据-单击IMsgStore按钮,打开根容器,转到GetHierarchyTable选项卡,双击IPM_SUBTREE文件夹,再次转到GetHierarchyTable选项卡,双击“对话操作设置”文件夹,转到“关联内容”选项卡。

在Outlook对象模型中访问关联邮件的唯一方法是通过MAPIFolder.GetStorage。它不允许您访问所有隐藏项或搜索特定项-您只能通过消息类(对于所有会话项将是"IPM.ConversationAction“)、主题或条目id。你当然可以根据主题,但它并不是唯一的-你可以有多个对话与同一主题,但其中一个被忽略,另一个不是。

如果可以选择使用Redemption,它会将关联的邮件视为常规项目(可通过RDOFolder.HiddenItems访问),因此您可以搜索(RDOFolder.HiddenItems.Find / FindNext / RestrictRDOFolder.HiddenItems.MAPITable.ExecSQL)。它还允许搜索二进制属性(例如PR_CONVERSATION_INDEX,这是Outlook用来查找对话的属性)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33015682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档