2014-11-21 58 views
0

当检查员窗口关闭时,我需要更改电子邮件的类别 - 我正在做什么与Close事件。Outlook加载项:电子邮件通过检查员移动时的事件

我的问题是,如果用户在检查器中单击“移动到文件夹”,邮件将被移动,此后关闭事件被触发,但此时我不再更改邮件,因为它已被更改通过邮件移动(例如:EntryID被更改)。

任何想法? 邮件上的“之前移动的事件”会很棒 - 或重新加载已更改邮件的方式。

回答

1

不幸的是,没有简单的方法来获取邮件被移动到的文件夹。这意味着您必须使用具有RDOStore对象事件的Redemption,它可以检测对任何文件夹的更改。但是你也必须监视每个商店,因为用户显然可以在任何地方移动它。而且由于EntryID已更改,您需要使用PR_SEARCH_KEY作为唯一标识符才能找到该电子邮件,然后将其应用于该类别。不好玩!

另一种选择可能是重新调整移动到功能区按钮以拦截移动操作,但是您必须提供自己的文件夹选取器!丑陋!

1
+0

但这个事件仅火灾,当你在资源管理器中移动邮件(例如,通过拖放) - 但不幸的是不是当你在弹出窗口中移动它。 – Gerwald 2014-12-03 17:16:59

+0

移动事件前还有一个文件夹:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mapifolderevents_12_event.beforeitemmove%28v=office.14%29.aspx如果这样做不工作,那么我只需将一个UserProperty添加到称为“NotCategorized”的mailitem中,然后在程序成功分类mailitem后取消设置。然后,您会定期扫描,检查整个邮箱是否有任何“未分类”项目,并处理它们 – 2014-12-03 17:28:00

+0

好的,是的。当检查员本身移动时,inspector.beforeMove会发生;当用户在资源管理器中移动一个项目时,folder.beforeItemMove会发生(这在用户在检查器中移动邮件时不会发生):这可能会奏效 - 但它的性能确实很差检查整个邮箱(可以提供一些thousend邮件) – Gerwald 2014-12-03 17:31:22

相关问题