2015-05-09 65 views
2

我在考虑一个可能性,以确定谁在Outlook中阅读邮件中的共享邮箱2010年确定谁读共享邮箱邮件

当然是的MailItem不持有物业像“readBy”,这就是为什么我正在寻找一种方式来回应事实消息已被标记为已读。然后,我可以将当​​前用户名写入用户定义的字段。

我最初的想法:

MailItem.Read()MailItem.Open()用VBA宏,但是 - 当我没有错 - 当的MailItem是集中然后在阅读窗格中显示MailItem.Open()被抛出。如果Outlook不会将其标记为自动读取,则“通过Max读取”信息将会错误。 MailItem.Read()只有当MailItem打开到新窗口时才抛出,但是什么时候我按Ctrl + 输入

经过一番谷歌搜索后,似乎VBA无法解决这个问题,或者它不是吗? 我应该考虑编写一个加载项吗?

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

回答

1

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

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

+0

作为消息的一部分,是否存在bool MailItem.UnRead?为什么最后修改时间等有关? – Clijsters

+0

我想说,当**另一个邮箱用户阅读一封邮件时,** I **通过我的Outlook阅读邮件并且**不会**得到通知时,唯一要查找的内容是要进行修改的。 – Clijsters

+0

是的,Unread是Outlook对象模型中的MailItem对象的一部分,但在商店级别,该属性单独存储在其他消息属性(如Subject)中。修改该属性不会重置修改的日期。 –

1

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

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

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

+0

谢谢您的全面解答。也许这是一个愚蠢的问题,但我不确定的事情是,这些事件是否仅在** I **改变财产或另一个同事改变财产时才会被解雇? – Clijsters

+0

事件在两种情况下都会触发。你不会知道是谁造成了这个变化。 –

+0

将对所有用户进行更改,因此当有人更改Outlook项目时,您将获得激发的事件。 –

相关问题