我们如何以及在哪里运行取决于发件人地址的代码



我尝试构建的加载项必须根据发件人的地址更改新邮件的密件抄送字段。

由于我不熟悉 Outlook 编程,因此我撰写了本文并构建了示例加载项。他们使用的事件是 NewInspector,正如您所读到的,该事件是在新的 Outlook 项目窗口出现之前触发的。但是,如果我们将此代码粘贴到 NewInspector 事件处理程序中:

        Outlook.MailItem item = Inspector.CurrentItem as Outlook.MailItem;
        if (item != null)
        {
            if (item.EntryID == null)
            {
                if (item.SenderEmailAddress == "...")
                    item.BCC = "....";
            }
        }

不起作用,因为当窗口刚刚加载时,发件人的地址为空。

我想过使用 Send 事件,创建的每封新邮件都会将其 Send 事件处理程序附加到一个方法,该方法反过来会根据发送电子邮件时发件人的地址更改密件抄送。

唯一的问题是,由于某种原因,我在VS 2010 Pro中看不到发送事件。

还有其他方法可以满足我的需要吗?

您需要

使用Outlook.MailItem的事件接口(Outlook.ItemEvents_10_Event),因为它具有与相同名称(Send)绑定的方法和事件。这只是您在 Outlook 对象模型中必须注意的怪癖之一。这应该适合您:

((Outlook.ItemEvents_10_Event)MailItem).Send += new Outlook.ItemEvents_10_SendEventHandler(MailItem_Send);

最新更新