在MS Outlook中删除签名标志不变的加密标志

时间:2019-11-07 12:20:25

标签: c# outlook vsto outlook-addin outlook-redemption

对于大多数经过加密和数字签名的电子邮件,我们可以使用mail.PropertyAccessor.SetProperty(PR_SECURITY_FLAGS,oldValue-1)或Outlook界面(文件->属性->加密邮件内容和附件)在c#中删除加密)。

然后可以毫无问题地保存此类邮件。对于少量电子邮件,保存操作将生成弹出窗口“您已更改此消息。如果您保存更改,则消息将不再经过数字签名。您要保存更改吗?”。

在触发保存操作之前,如何识别生成此弹出窗口的电子邮件(之前可以读取的任何标志或属性)?还是有任何方法可以使用Outlook Redemption实现此目的?

2 个答案:

答案 0 :(得分:0)

在要发送消息之前,不要设置PR_SECURITY_FLAGS属性。
另外,该属性是位掩码,因此oldValue-1确实没有意义。如果要删除最低位,请使用oldValue & ~1

答案 1 :(得分:0)

添加或删除任何其他标志时,必须保留现有的安全标志:

int x = 524297500;
int a = x / 1000; // 524297
int b = x % 1000; // 500

标志是:

  • 无(= 0)
  • SECFLAG_ENCRYPTED(= 1)
  • SECFLAG_SIGNED(= 2)
  • SECFLAG_ENCRYPTED和SECFLAG_SIGNED(= 3)