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



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

这样的邮件就可以毫无问题地保存下来。对于少量电子邮件,保存操作会生成弹出窗口"您已更改此邮件。如果保存更改,邮件将不再进行数字签名。是否保存更改?"。

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

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

Sub SignAndEncrypt()
Const PR_SECURITY_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"
Dim mi As MailItem
Set mi = Application.ActiveInspector.CurrentItem
Dim ulFlags As Long
ulFlags = CLng(mi.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS))
ulFlags = ulFlags Or &H1 ' SECFLAG_ENCRYPTED
ulFlags = ulFlags Or &H2 ' SECFLAG_SIGNED
mi.PropertyAccessor.SetProperty PR_SECURITY_FLAGS, ulFlags
Set mi = Nothing
End Sub

标志是:

  • 无(=0(
  • SECFLAG_ENCRYPTED(=1(
  • SECFLAG_SIGNED(=2(
  • SECFLAG_加密&SECFLAG_SIGNED(=3(

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

相关内容

  • 没有找到相关文章

最新更新