确定谁阅读了共享邮箱中的邮件

Determine who has read a mail in shared mailbox

我正在考虑确定 阅读了 Outlook 2010 共享邮箱中的邮件的可能性。

当然,MailItem 不像 "readBy" 那样包含 属性,这就是为什么我要寻找一种方法来回应 一条消息已被标记为已读。然后我可以将当​​前用户名写入用户定义的字段。

我的第一个想法:

使用 VBA 宏收听 MailItem.Read()MailItem.Open(),但是 - 如果我没记错 - 当 MailItem 为 [=26] 时抛出 MailItem.Open() =]focused 并显示在阅读窗格中。如果 Outlook 没有自动将其标记为已读,则信息 "Read by Max" 将是错误的。 MailItem.Read() 仅在将 MailItem 打开到新的 window 时抛出,但是当我按下 Ctrl+Enter 时会发生什么?

经过一些谷歌搜索后,似乎 VBA 无法以好的方式解决这个问题,或者是吗? 我应该考虑编写一个加载项吗?

你知道我该怎么做吗?任何想法将不胜感激。

Outlook 对象模型提供了 PropertyChange 事件,该事件在父对象实例的显式内置 属性(例如,主题)发生更改时触发。

当指定集合中的项目发生更改时,也会触发项目 class 的 ItemChange 事件。您可以检查作为参数传递的 Outlook 项目的读取 属性。

如果您需要处理项目级事件,您可能会发现 Developing an Inspector Wrapper for Outlook 2010 文章很有帮助。

那将是个坏主意 - 现在您需要 修改 当所有用户都阅读了消息时。这将自动更新最后修改的 time/name/entry id.

请记住,read/unread 状态在技术上不是消息的一部分,因此重置它不会修改消息。更重要的是,PF 存储基于每个用户存储 read/unread 状态。