我正在使用VSTO,VS 2010和Outlook 2010开发Outlook解决方案。
我想覆盖Outlook发送行为的默认功能。
这是要求。
当用户点击发送按钮时,我必须检查它是否是短信 - “IPM.Note.Mobile.SMS”。如果它是一个SMS,那么我必须提供我的自定义实现发送。如果它不是SMS,则默认发送行为。
对于自定义发送部分,我必须使用自己的Web服务并处理它。
我想要的是一种在Outlook 2010中覆盖默认发送功能的方法/方法。
我在MSDN,检查器包装器和强制执行自定义业务规则上阅读了一些文章,但我没有得到我想要的东西。我想要一个纯粹的C#解决方案而不是第三方dll喜欢兑换。我试图尽可能具体,我希望相同:)
请帮帮我:D 谢谢,
问候 - 萨姆
答案 0 :(得分:6)
您需要处理Microsoft.Office.Interop.Outlook.Send
事件(ItemEvents_10_SendEventHandler
)。您可以看到参考here。下面提供了一个粗略的例子。您可以从应用程序参考中获取检查器和活动检查器中的消息类。
((Outlook.ItemEvents_10_Event)inspector.CurrentItem).Send += new Outlook.ItemEvents_10_SendEventHandler(Inspector_Send);
void Inspector_Send(ref bool Cancel)
{
if (IPM.Note.Mobile.SMS)
{
// custom implementation
}
else
Cancel = true; // don't send the message out
}
答案 1 :(得分:3)
这里有一个不同的解决方案。只需在Add-in_StartUp中包含此行:
Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
当然,事件处理程序的实现:
void Application_ItemSend(object Item, ref bool Cancel)
{
MessageBox.Show("Yihha!!");
Cancel = true;
}
这将拦截您发送的任何邮件。