首页 文章

创建 VBA 宏以保存电子邮件副本

提问于
浏览
2

我使用 Outlook(MS Exchange),并且有一个个人和两个组收件箱(我正在使用个人资料登录,也可以通过该个人资料访问组收件箱)。

发送电子邮件时,我在From字段中选择了我的个人或两个组的电子邮件地址之一。发送电子邮件后,我希望将副本保存在myIndividualMailboxgroupAMailboxgroupBMailbox的收件箱中,具体取决于我使用的From电子邮件地址。

**示例:**如果我发送电子邮件From**groupA@myCompany.com **,我希望将电子邮件副本保存在groupAMailbox的收件箱中(而不是在我的个人收件箱中)。

据我了解,这不可能通过在 Outlook 中设置规则来实现,但是可以通过VBA 宏来完成。我现在不知道如何编写 VBA 宏,也不知道这是一个简短的脚本还是更复杂的脚本。实际上,我从未在 Outlook 中编写宏,所以我什至不知道如何开始。谁能展示如何做到这一点?

我开始寻找有关以下问题的解决方案:在“发件人”字段中进行过滤的 Outlook send-rule

2 回答

  • 1

    据我所知,我为您做了这件事。您应该将其放在 Microsoft Outlook 对象-ThisOutlookSession 模块中。

    请注意,除非您先运行enableEvents,否则myolApp_ItemSend事件将永远不会触发。而且,您需要确保每次关闭 re-open Outlook 时都启用该功能。这将需要一些自定义,但应该可以为您提供总体思路。

    Option Explicit
    Public WithEvents myolApp  As Outlook.Application
    
    Sub enableEvents()
        Set myolApp = Outlook.Application
    End Sub
    
    Private Sub myolApp_ItemSend(ByVal item As Object, Cancel As Boolean)
        Dim items As MailItem
        Dim copyFolder As Outlook.Folder
        Dim sentWith As String
        'Identify sender address
        If item.Sender Is Nothing Then
            sentWith = item.SendUsingAccount.SmtpAddress
        Else
            sentWith = item.Sender.Address
        End If
    
        'Determin copy folder based on sendAddress
        Select Case sentWith
            Case "groupA@myCompany.com"
                'get groupAMailbox's inbox
                Set copyFolder = Application.GetNamespace("MAPI").folders("groupAMailbox").folders("Inbox")
            Case "myE-mailAddress"
                'get My inbox
                Set copyFolder = Application.GetNamespace("MAPI").folders("myE-mailAddress").folders("Inbox")
        End Select
    
        'copy the Item
        Dim copy As Object
        Set copy = item.copy
        'move copy to folder
        copy.Move copyFolder
    
    End Sub
    

    **编辑:**看来他们现在实际上已经直接将事件功能内置到 Outlook 的 Application 对象中,但是通过测试您仍然必须执行我上面概述的操作。

  • 0

    Outlook 将所有已发送邮件存储在默认已发送邮件文件夹中。但是,您可以应用补丁程序将发送的项目保存在其自己的文件夹中。 http://support.microsoft.com/kb/2181579

相关问题