2012-11-19 41 views
1

我正在开发一个项目,该项目在Outlook 2010中显示特定消息的customicon和informationarea。为了达到这个目的,我改变了消息的MessageClass。只要消息没有数字签名,这个工作就很好。
这里是改变MessageClass的代码:Outlook更改MessageClass数字签名邮件

 public static void SetMessageClass(ref Outlook.MailItem mi) { 
     try { 
      if (mi.MessageClass.ToLower() == "ipm.note" || mi.MessageClass.ToLower() == "ipm.note.smime" || mi.MessageClass.ToLower() == "ipm.note.myclass") { 
       Logger.Log("Setze Message-Class auf " + MESSAGE_CLASS); 
       mi.MessageClass = MESSAGE_CLASS; 
       mi.Save(); 
      } 
     } catch (System.Exception ex) { 
      Logger.Log("Fehler beim setzen der Message-Class:\r\n" + ex.Message); 
     } 
    } 

我需要改变MessageClass的,因为我想显示图标和informationarea。

如果邮件具有数字签名,将出现如下窗口: http://social.msdn.microsoft.com/Forums/getfile/186575

不要紧,我点击了哪个按钮,图标不会改变。

任何人都可以帮助我吗?

迎接Knerd

PS:这里是在德国的问题:http://social.msdn.microsoft.com/Forums/de-DE/vstode/thread/e51b221e-89f6-419f-90e6-e17c74662a9f

回答

1

观竭尽全力表示作为常规IPM.Note的的MailItem对象签名/加密消息(它们不是)。

我知道的唯一解决方法是使用扩展MAPI(C++或Delphi)或Redemption(任何语言)绕过OOM层 - 在Redemption中使用RDOSession.GetItemFromID。然后可以读取MessageClass/PR_MESSAGE_CLASS属性并绕过签名/加密的消息。

+0

Thx,但有点迟到^^我不再为公司工作,我只是接受它,因为你给了1,5年后的第一个答案:) – Knerd

+1

对不起,我没有意识到问题是问了1.5年前:-) - 我在Outlook中的RSS feed刚刚发布,因为有人可能今天给它加了标签。 –