You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA设置Outlook草稿不加密遇Error 287问题求助

解决Outlook VBA设置PR_SECURITY_FLAGS时Error 287的问题

核心问题分析

Error 287是Outlook安全限制触发的常见错误,多发生在企业Exchange环境下,组策略禁止外部程序直接修改邮件安全属性(如加密状态)。以下是几种可行的解决方法:

方法1:调整代码执行顺序,重新获取草稿项修改属性

先创建并保存邮件草稿,再通过Outlook命名空间重新获取该草稿,最后修改安全属性,可绕过部分直接修改的安全拦截:

' 确保PR_SECURITY_FLAGS定义正确
Const PR_SECURITY_FLAGS As String = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"

Dim OApp As Object
Dim OMail As Object
Dim ns As Object

Set OApp = CreateObject("Outlook.Application")
Set ns = OApp.GetNamespace("MAPI")
Set OMail = OApp.CreateItem(0) ' olMailItem 对应数值0

' 先填充邮件内容并保存为草稿
With OMail
    .To = "xx@gmail.com"
    .Subject = "subjecthere " & currdate
    .Body = CCbody1 & ccprice & CCbody2
    .Attachments.Add TempFilePath & TempFileName & FileExtStr
    .Save
End With

' 重新获取草稿项,避免直接修改的安全限制
Set OMail = ns.GetItemFromID(OMail.EntryID)
' 设置不加密属性:-4对应SECFLAG_ENCRYPTED(0) + SECFLAG_DO_NOT_ENCRYPT(4)的组合
OMail.PropertyAccessor.SetProperty PR_SECURITY_FLAGS, -4
OMail.Save ' 保存修改

' 释放对象
Set OMail = Nothing
Set ns = Nothing
Set OApp = Nothing

方法2:使用Redemption库绕过Outlook安全限制

Redemption是第三方库,不依赖Outlook内置安全模型,能稳定修改邮件属性:

  1. 下载并注册Redemption.dll(企业环境需联系IT确认合规性)
  2. 使用以下代码:
Const PR_SECURITY_FLAGS As String = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"

Dim rSession As Object
Dim rMail As Object
Dim OApp As Object
Dim OMail As Object

Set OApp = CreateObject("Outlook.Application")
Set OMail = OApp.CreateItem(0)

' 先创建并保存邮件草稿
With OMail
    .To = "xx@gmail.com"
    .Subject = "subjecthere " & currdate
    .Body = CCbody1 & ccprice & CCbody2
    .Attachments.Add TempFilePath & TempFileName & FileExtStr
    .Save
End With

' 通过Redemption访问并修改邮件属性
Set rSession = CreateObject("Redemption.RDOSession")
rSession.MAPIOBJECT = OApp.GetNamespace("MAPI").MAPIOBJECT
Set rMail = rSession.GetMessageFromID(OMail.EntryID)
rMail.Fields(PR_SECURITY_FLAGS) = -4
rMail.Save

' 释放对象
Set rMail = Nothing
Set rSession = Nothing
Set OMail = Nothing
Set OApp = Nothing

方法3:联系IT调整企业安全策略

如果是企业Exchange环境,组策略可能禁止程序修改邮件安全属性:

  • 要求IT将Excel.exe添加到Outlook信任中心的“受信任应用程序”列表
  • 调整Exchange组策略,允许程序修改PR_SECURITY_FLAGS属性

内容的提问来源于stack exchange,提问作者user3399836

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:25:33