检测当前Outlook窗口是否为转发电子邮件?

Pol*_*lzi 4 c# email outlook vsto add-in

我有一个Outlook插件.我有一个检查器处理程序,在打开一个新窗口时调用一个方法.我希望该方法仅在当前窗口是转发消息窗口(当您单击电子邮件中的转发按钮时打开的窗口)时才执行"某事".我当前的代码有效但它适用于所有新窗口,包括回复/新电子邮件等.

任何帮助我如何检查新窗口是否是转发电子邮件窗口?

我的代码:

...
Outlook.Inspectors olInspectors;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {  ......
        olInspectors = this.Application.Inspectors;
        olInspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(Forward_Message_Inspector);
    }

void Forward_Message_Inspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
    {
      //how do I check here if current window is a forward message window?
          //and then do something
    }
Run Code Online (Sandbox Code Playgroud)

预先感谢您的任何帮助.

Sar*_*hra 5

您可以使用Subject电子邮件进行检查.

void Forward_Message_Inspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
    Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
    if (mailItem != null)
    {
        if (mailItem.Subject.StartsWith("FW: "))
        {
          //do something here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您也可以通过分析来做到这一点 Mail Body

  • 我会使用Eric提出的另一种方法.可以由用户或以编程方式修改主题.所以,你不能一直依赖主题. (2认同)