我正在开发一个自动解密电子邮件的Outlook-AddIn。所以基本上,AddIn会在新邮件到达时更改一些MailItem属性(主题,正文,附件)。问题是,当我保存项目时,解密的消息与服务器同步,这对于端到端加密非常糟糕...如果我不保存项目,那么资源管理器窗格仍会显示加密的邮件和搜索电子邮件(解密的主题或正文)不起作用。
我的问题是:如何显示和(本地)存储解密的mailItem,以便所有常用功能(如电子邮件搜索)仍可正常工作? 有没有办法停止.ost中的特定电子邮件的同步?
我想出的一个解决方案是将MailItem的副本存储在本地.pst存储中。但在这种情况下,用户必须处理两个不同商店(.ost和.pst)中的消息,这对用户不是很友好。要求是用户在阅读电子邮件时必须尽可能少地改变其惯常行为。
private void Outlook_NewMailEx(object Item)
{
Outlook.MailItem mailItem = Application.Session.GetItemFromID((string)Item);
if (mailItem != null)
{
// decrypt the mailItem
mailItem.Subject = "decrypted subject";
mailItem.Body = "decrypted body";
// save mailItem LOCALLY
// (don't synchronize the decrypted message with the server)
mailItem.Save();
}
}
我将不胜感激任何帮助!
答案 0 :(得分:1)
我想出的一个解决方案是将MailItem的副本存储在本地.pst存储中。
这是我第一次想到可能的实现。
您也可以考虑以下情况:
获得StorageItem对象后,您可以执行以下操作来存储解决方案数据:
有关详细信息,请参阅Storing Data for Solutions。