OutLook MailItem发送事件不起作用

时间:2016-11-21 11:57:57

标签: c# outlook office-interop mailitem

我使用Microsoft.Office.Interop.Outlook生成一条消息并为用户打开它。当用户在Outlook中发送消息时,我想捕获此事件。不像在这个SO中所讨论的那样:

capture the Outlook 2013 Send event

我捕获所有已发送的电子邮件,不仅生成了。

public static MailItem CreateMail() 
{
    Application outlook = new Application();
    MailItem mailItem = outlook.CreateItem(OlItemType.olMailItem);
    // set recipients, body, ect..
    mailItem.Send += MailItemSendedHandler;
    Inspector inspector = mailItem.GetInspector;
    inspector.Activate();
    return mailItem;
}

static void MailItemSendedHandler(ref bool isSended) 
{
}

MailItem具有Send()方法和Send事件。当我订阅时,我得到错误:

  

无法分配到“发送”,因为它是方法组。

如何捕获MailItem的Send事件?

1 个答案:

答案 0 :(得分:0)

MailItem是一个继承自接口_MailItemItemEvents_10_Event的接口。他们都有Send。 (在_MailItem中它是一个方法,在ItemEvents_10_Events中它是一个事件)。我认为我们存在冲突,需要明确定义我们想要使用的Send

((ItemEvents_10_Event)mailItem).Send += new ItemEvents_10_SendEventHandler(MailItemSendedHandler);

static void MailItemSendedHandler(ref bool isSended) 
{
}