Excel VBA/Outlook 发送未加密的电子邮件

问题描述 投票:0回答:1

我正在处理的代码当前会生成一条消息,保存为草稿以供其他人发送,然后将该草稿附加到另一封电子邮件中。但是,我需要所附草稿保持未加密状态,以便其他人能够发送。由于我中心的策略默认自动加密电子邮件,因此我尝试仅设置初始草稿的属性。否则,成员无法打开该文件。

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

OMail.PropertyAccessor.SetProperty PR_SECURITY_FLAGS, -4

With OMail
.To = "[email protected]"
.Subject = "subjecthere " & currdate
.Body = CCbody1 & ccprice & CCbody2
.Attachments.Add TempFilePath & TempFileName & FileExtStr
.Save
End With
  On Error GoTo 0

不幸的是,运行此处评论中提到的代码:

https://learn.microsoft.com/en-us/archive/blogs/dvespa/how-to-sign-or-encrypt-a-message-programmatically-from-oom

我在 SetProperty 中收到错误 287,假设也是由于安全策略的原因。难道是我运气不好?

CONST PR_SECURITY_FLAGS 也根据需要包含在我的代码中

excel vba encryption outlook
1个回答
0
投票

您所引用的页面包含不完整的属性DASL名称,您必须按以下方式定义属性常量:

Dim PR_SECURITY_FLAGS As String = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"

然后您可以将该属性设置为 Outlook 可以理解的以下值(位标志):

NONE | 0x0000 | Message has no security 
ENCRYPTED | 0x0001 | Message is encrypted 
SIGNED | 0x0002 | Message is signed 
SIGNED | ENCRYPTED | 0x0003 | Message is signed and encrypted

MailItem.PropertyAccessor.SetProperty
允许设置这些属性值。您可以尝试将该属性设置为
NONE
常量。

但请记住,

PR_SECURITY_FLAGS
属性不用于加密或解密 Outlook 中的邮件,它仅可用于向 Outlook 指示应如何处理特定项目。

© www.soinside.com 2019 - 2024. All rights reserved.