【问题标题】:Outlook Script: Forward e-mail without the attachmentOutlook 脚本:转发不带附件的电子邮件
【发布时间】:2020-06-30 19:35:44
【问题描述】:

我正在寻找将所有传入电子邮件转发到通讯组的脚本,但没有附件。我需要将附件保留在原始电子邮件中,这样它就不能被删除。我正在使用 Microsoft Outlook 2010。

所以只是为了清楚起见:一封电子邮件附带了一些东西。我想将这封不带附件的电子邮件转发到其他地址,同时保持原件不变。

在此先感谢任何可以提供帮助的人。

编辑:这个过程需要在每封进入该地址的电子邮件上自动发生。

【问题讨论】:

标签: vba email outlook


【解决方案1】:

将以下代码放入您的ThisOutlookSession 模块:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim varEntryID As Variant

    For Each varEntryID In Split(EntryIDCollection, ",")
        Dim objOriginalItem As MailItem
        Set objOriginalItem = Application.GetNamespace("MAPI").GetItemFromID(varEntryID)
        Dim objForwardedItem As MailItem
        Set objForwardedItem = objOriginalItem.Forward

        Do Until objForwardedItem.Attachments.Count = 0
            objForwardedItem.Attachments.Remove (1)
        Loop

        objForwardedItem.To = "toemailaddress@domain.com"
        objForwardedItem.Send
    Next
End Sub

可以在项目资源管理器的 VBA IDE (Alt + F11) 中访问此模块:Project > Microsoft Outlook Objects > ThisOutlookSession

【讨论】:

  • 抱歉,我应该在原始问题中包含此内容,因此我将对其进行编辑。但它需要在收到的每封电子邮件中自动发生。
  • 请原谅我的无知,但是我该如何在传入的消息上运行呢?
  • 它会在新消息到达时运行,因为它位于Application_NewMailEx 事件处理程序中。这是您可以在 Outlook VBA 中从 ThisOutlookSession 模块内部使用的内置事件处理程序之一。
  • 它不工作。我将代码放入我的 ThisOutlookSession 模块中,但是当收到一封电子邮件时,什么也没有发生。我还确保更改转发到电子邮件地址。
  • 任何宏都有效吗? Outlook 是否设置为信任宏?检查 Outlook 选项“信任中心”页面 >“信任中心设置”按钮 >“宏设置”页面 - 确保选中“启用所有宏”。此外,您可以通过在子正文中创建一个仅包含 Msgbox("testing") 的“Sub Test()”来运行一个简单的测试,然后将光标放在正文中并按 F5。如果您看到该对话框,则说明宏正在工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多