1

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

捕获 Outlook 2013 发送事件

我在其中捕获所有已发送的电子邮件,而不仅仅是生成的。

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事件。当我订阅时,我收到错误:

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

如何 Send为我的 MailItem 捕获事件?

4

1 回答 1

1

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) 
{
}
于 2016-11-22T07:33:39.793 回答