发送未加密的电子邮件

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

我的 Excel VBA 代码生成一条消息,保存为草稿以供其他人发送,然后将该草稿附加到另一封电子邮件中。

我需要将所附草稿保持未加密状态,以便其他人发送。

由于我的中心的策略默认对电子邮件进行加密,因此我尝试仅为初始草稿设置该属性。否则,成员无法打开该文件。

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

我收到错误 287 和

SetProperty
,假设是由于安全策略的原因。

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.