Outlook添加,第一次读取邮件时进行审核

时间:2017-02-19 09:45:14

标签: c# outlook outlook-addin

我已经将以下代码放在一起,以便在有人读取邮件时编写事件。但我只有在第一次阅读时才需要写。关于如何实现这一点的任何想法。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            inspectors = this.Application.Inspectors;
            inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
            application = new Outlook.Application();
            oINS = application.GetNamespace("MAPI");

        }

void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
        {
            currentItem = Inspector.CurrentItem as Outlook.MailItem;
            currentItem.Read += new Outlook.ItemEvents_10_ReadEventHandler(item_read);

        }

void item_read()
        {
            WriteAudit("Item being read newly");
        }

1 个答案:

答案 0 :(得分:0)

我注意到以下代码行:

 application = new Outlook.Application();

无需在Startup事件处理程序中创建新的Application实例。相反,您可以使用加载项类的Application属性。

在这种情况下,您需要保留未读项目ID列表,以检查邮件项目是否先前打开过。

但是有一个更简单的解决方案。处理在更改父对象实例的显式内置属性(例如,Subject)时触发的MailItem类的PropertyChange事件。您对UnRead属性更改感兴趣。如果尚未打开(读取)Outlook项,则该属性返回一个为True的布尔值。