Outlook VBA 实现邮件及附件自动保存

以下VBA代码示例演示如何在Outlook中自动保存接收到的邮件及其附件:

Private Sub Application_ItemAdd(ByVal Item As Object)
    ' 判断是否为邮件
    If TypeName(Item) = "MailItem" Then
        Dim olMail As Outlook.MailItem
        Set olMail = Item

        ' 设置保存路径
        Dim strSavePath As String
        strSavePath = "C:saved_emails"

        ' 创建保存文件夹(如果不存在)
        If Dir(strSavePath, vbDirectory) = "" Then
            MkDir strSavePath
        End If

        ' 保存邮件
        olMail.SaveAs strSavePath & olMail.Subject & ".msg", olMSG

        ' 保存附件
        Dim olAttach As Outlook.Attachment
        For Each olAttach In olMail.Attachments
            olAttach.SaveAsFile strSavePath & olAttach.DisplayName
        Next
    End If
End Sub

代码说明:

  1. Application_ItemAdd 事件在邮件到达收件箱时触发。
  2. 代码首先判断接收到的项目是否为邮件 (MailItem)。
  3. 设置邮件和附件的保存路径。
  4. 如果保存路径不存在,则创建该文件夹。
  5. 使用 SaveAs 方法保存邮件为 .msg 格式。
  6. 循环遍历邮件的所有附件,并使用 SaveAsFile 方法保存每个附件。

注意:

  • 请将 strSavePath 变量的值修改为您希望保存邮件和附件的实际路径。
  • 该代码示例仅保存接收到的邮件和附件,如果您需要保存发送的邮件,请修改代码以使用 Application_ItemSend 事件。
bas 文件大小:2.45KB