如何以编程方式停止 OutLook 安全消息:程序正在尝试访问电子邮件地址,允许访问 1 分钟



如何停止 OutLook 安全消息 :

程序正在尝试访问电子邮件地址,允许访问 1 分钟

我想以编程方式停止此警报,并希望允许vba访问 Outlook 的收件箱,因为我没有 Outlook 的管理员访问权限,因此我无法手动解决此问题 转到 Outlook 中的信任中心设置

我的代码工作得很好,但运行安全消息需要一次又一次地检查访问 10 分钟

使用 excel vba 我正在访问 Outlook 邮件并从邮件下载附件

Dim sa, ba As Date
Dim spa As Date
Set ObjO = CreateObject("Outlook.Application")
Set olNs = ObjO.GetNamespace("MAPI")
Set objFolder = olNs.GetDefaultFolder(6)
Debug.Print objFolder
spa = Date
Dim j
j = 0
For Each item1 In objFolder.Items
    sa = Format(item1.ReceivedTime, "dd-MM-yyyy")
    If sa <= spa Then
         If sa > spa - 30 And item1.SenderName = "PUJARY, SHRIKANTH" Then

在执行 item1.senderName 行时,弹出安全警报

遇到同样的事情,没有简单的解决方案。从本质上讲,弹出窗口是为了防止您尝试执行的确切操作:远程控制Outlook。它是为了防御VBA/宏病毒而建立的。所以不,你不能阻止这一点。

解决方案是改用扩展消息传递 API (MAPI(,但这并非易事。可以购买帮助程序库,例如 vbMAPI 或 Outlook Redemption

有什么区别?虽然 VBA 方法允许您抓取正在运行的 Outlook 实例,但 MAPI 要求您使用用户名/密码登录到 MAPI 配置文件。这没有利用Outlook所具有的安全问题,因此是安全的。

如果使用 Redemption(我是它的作者(是一种选择,那么在几个地方修改脚本会使其在没有安全提示的情况下运行:

dim sItem
set sItem = CreateObject("Redemption.SafeMailItem")
For Each item1 In objFolder.Items
    sItem.Item = item1
    sa = Format(item1.ReceivedTime, "dd-MM-yyyy")
    If sa <= spa Then
         If sa > spa - 30 And sItem.SenderName = "PUJARY, SHRIKANTH" Then

相关内容

最新更新