Application.ItemSend 未调用

Application.ItemSend not called

我触发从我的 WPF 应用程序撰写邮件。

我注册 send/close 事件如下:

_mailItem.Application.ItemSend += Application_ItemSend;
Inspector inspector = _mailItem.GetInspector;
((InspectorEvents_10_Event)inspector).Close += MailItem_Close;

// ...

private void MailItem_Close()
{
    Log.Debug("MailItem_Close ...");
}

private void Application_ItemSend(object Item, ref bool Cancel)
{
    Log.Debug("Application_ItemSend ...");
}

我注意到当用户点击 "Send" 时 MailItem_CloseApplication_ItemSend 都没有被调用 而没有在邮件中输入任何文本.

即使用户没有在邮件中输入任何文本,是否有机会收到事件?

EDIT 我注意到即使用户确实输入了一些文本,事件也不会每次都被调用。那么我怎样才能实现事件总是被调用呢?

您需要确保两个事件源都处于活动状态并在全局范围内声明(未被垃圾收集器清除)。即使没有在电子邮件中输入文本,所有这些都会被触发。

// at the class level you need to define both objects
Outlook.Application app;
Inspector inspector;

// then you can subscribe to the events
app.ItemSend += Application_ItemSend;
inspector = _mailItem.GetInspector;
((InspectorEvents_10_Event)inspector).Close += MailItem_Close;

private void MailItem_Close()
{
    Log.Debug("MailItem_Close ...");
}

private void Application_ItemSend(object Item, ref bool Cancel)
{
    Log.Debug("Application_ItemSend ...");
}