确定谁在共享邮箱中读取了邮件

时间:2015-05-09 19:24:47

标签: vb.net vba email outlook collaboration

我正在考虑是否有可能确定已在Outlook 2010的共享邮箱中阅读过邮件。

当然,MailItem不会拥有类似于&#34; readBy&#34;这样的属性,这就是为什么我正在寻找一种方法来回应那个< / strong>邮件已标记为已读。然后我可以将当​​前用户名写入用户定义的字段。

我的第一个想法:

使用VBA宏收听MailItem.Read()MailItem.Open(),但是 - 当我没有错时 - 当一个MailItem 聚焦时,会抛出MailItem.Open() 并显示在阅读窗格中。如果Outlook没有将其标记为自动读取,则信息&#34;由Max&#34;会错的。 仅当MailItem打开到新窗口时才会抛出MailItem.Read(),但是当我按 Ctrl + Enter 时会发生什么?

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

你知道我怎么能这样做吗?任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

这不是一个坏主意 - 现在你需要修改消息,当所有用户都读过它时。这将自动更新上次修改的时间/名称/条目ID。

请记住,读/未读状态在技术上不是消息的一部分,因此重置它不会修改消息。更重要的是,PF商店以每个用户为基础存储读/未读状态。