vba outlook 如何识别和传递加密邮件

How to recognize and pass over encrypted Email in vba outlook

我使用 vba 程序处理(循环)我文件夹中的电子邮件。如果电子邮件被加密,我会收到错误消息

我只想在处理过程中忽略加密电子邮件。我可以做 "on error continue",但我更喜欢一些

if IsEncrypted(mailitem) then
    skip and go to next mailitem
end if

谁能帮我解决这个问题?

找到了。任何 mailitem 都有 .MessageClass 属性,在我的加密电子邮件的情况下是 "IPM.Note.SMIME"。简单地检查这个字符串就完全回答了我的问题

您可以检查 PR_SECURITY_FLAGS 属性 值。

    Const PR_SECURITY_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"
    Const SECFLAG_ENCRYPTED As Long = &H1    

    Dim SecFlags As Long

    ' Get current flags value
    SecFlags = oItem.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS)

How to sign or encrypt a message programmatically from OOM 文章中阅读更多相关信息。

请记住 third-party add-ins 可以在不更改消息 class 或安全标志的情况下加密消息。它们看起来像一封普通的电子邮件。在这种情况下,您将必须解析邮件正文以检测它们。