使用电子邮件 Outlook 中的链接触发 VBA 代码

Posted

技术标签:

【中文标题】使用电子邮件 Outlook 中的链接触发 VBA 代码【英文标题】:Use link from email outlook to fire VBA code 【发布时间】:2022-01-19 14:45:50 【问题描述】:

是否有机会使以下场景起作用

    用户在 Outlook 中收到包含链接/文本/对象的电子邮件 单击对象会在用户计算机上运行简单的 VBA 代码(即替换 txt 中的字符串)文件

谢谢。

【问题讨论】:

【参考方案1】:

不,这是不可能的。这是恶意软件的潜在路径。

相反,您可以在 Outlook VBA 宏中处理 Application 类的 NewMailEx 事件,其中可以检测此类邮件(带有特定文本或链接)并相应地运行您的业务逻辑。

NewMailEx 事件会为 Microsoft Outlook 处理的每个收到的项目触发一次。该项目可以是几种不同的项目类型之一,例如MailItemMeetingItemSharingItemNewMailEx 事件在新邮件到达收件箱时以及在客户端规则处理发生之前触发。您可以使用EntryIDCollection数组中返回的Entry ID调用NameSpace.GetItemFromID方法并处理该项目。

【讨论】:

谢谢。让我更清楚一点,我基本上需要电子邮件中的批准/拒绝按钮。您建议的方法不提供用户做出决定的可能性,电子邮件接收事件听起来也不可行,因为用户应该能够在他想要获得批准时自行选择。在您看来,是否还有其他方法、插件甚至是完全开箱即用的不同灵魂? 您可以向用户显示一个对话框以确认任何操作。

以上是关于使用电子邮件 Outlook 中的链接触发 VBA 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何将列中的超链接插入Outlook电子邮件正文

使用 VBA 禁用 Outlook 安全设置

使用 VBA 宏选择和复制 Outlook 电子邮件正文

如何使用excel vba,对outlook进行操作?

如何使用 VBA 识别 MS Outlook 中的日历条目?

让 VBA 循环遍历 Outlook 中的所有收件箱,包括共享收件箱