覆盖 Outlook 的默认发送功能

发布于 2024-12-12 21:00:35 字数 434 浏览 1 评论 0原文

我正在使用 VSTO、VS 2010 和 Outlook 2010 开发 Outlook 解决方案。

我想覆盖 Outlook 发送行为的默认功能。

这是要求。

当用户单击“发送”按钮时,我必须检查它是否是短信 - “IPM.Note.Mobile.SMS”。如果它是短信,那么我必须提供自定义的发送实现。如果不是短信,则默认发送行为。

对于自定义发送部分,我必须使用我自己的网络服务并处理它。

我希望您提供一种覆盖 Outlook 2010 中默认发送功能的方法

我读过 MSDN、检查器包装器和执行自定义业务规则上的几篇文章,但我没有得到我想要的。我想要一个纯 C# 解决方案,而不是像赎回这样的第三方 dll。我尝试尽可能具体,我期望同样的:)

请帮助我:D 谢谢,

问候 - 山姆

Im developing a solution for Outlook with VSTO, VS 2010 and Outlook 2010.

I want to override default functionality of Outlook's sending behavior.

Here is the requirement.

When user clicks on Send button, i have to check whether it is an SMS - "IPM.Note.Mobile.SMS". If it is an SMS then i have to give my custom implementation for sending. If it is not an SMS then default sending behavior.

For custom sending part I have to use my own web service and handle it.

What i want from you is a method/way to override default sending function in Outlook 2010.

I have read few articles on MSDN, inspector wrappers and enforcing custom business rules, but i didn't get what i want. And i want a pure C# solution not a third party dll like redemption. I tried to be specific as much as i can, i expect the same :)

Please help me :D
Thanks,

Regards -
Sam

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梅倚清风 2024-12-19 21:00:35

您需要处理 Microsoft.Office.Interop.Outlook.Send 事件 (ItemEvents_10_SendEventHandler)。您可以在此处查看参考。下面提供了一个粗略的示例。您可以从检查器获取消息类,并从应用程序引用获取活动检查器。

((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 
        }

You need to handle the Microsoft.Office.Interop.Outlook.Send event (ItemEvents_10_SendEventHandler). You can see the reference here. A rough example is provided below. You can get the message class from the inspector and the active inspector from the application reference.

((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 
        }
过期情话 2024-12-19 21:00:35

在这里你有一个不同的解决方案。只需在您的 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;
    }

这将拦截您发送的任何消息。

Here you have a different solution. Just include this line in your Add-in_StartUp:

Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);  

And of course, the implementation of the event handler:

    void Application_ItemSend(object Item, ref bool Cancel)
    {
        MessageBox.Show("Yihha!!");
        Cancel = true;
    }

This will intercept any message you send.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文