如何快速将Outlook文件夹中的所有邮件压缩成一个 Zip 文件

立即分享:

有些用户想将 Outlook 文件夹中的所有电子邮件压缩到一个 zip 文件。 虽然没有这样直接的功能,但您可以利用本文公开的VBA代码快速实现它。

至 zip 要将 Outlook 文件夹中的所有电子邮件逐一导出到本地驱动器,然后使用“发送到”>“压缩(zipped)文件夹”功能。毫无疑问,这种方法非常繁琐。因此,为了帮助您一次性完成此操作,接下来我们将教您另一种方法。我们将教您如何使用 VBA 代码来实现。如果您不熟悉 VBA,可以参考“如何在 Outlook 中运行 VBA 代码“ 同时。

发送到压缩(zipped)文件夹

将文件夹中的所有电子邮件压缩到 Zip 文件

  1. 首先,通过“Alt + F11”启动 Outlook VBA 编辑器。
  2. 然后,将 VBA 代码复制并粘贴到模块中。
Sub ZipAllEmailsInAFolder()
    Dim objFolder As Outlook.Folder
    Dim objItem As Object
    Dim objMail As Outlook.MailItem
    Dim strSubject As String
    Dim varTempFolder As Variant
    Dim varZipFile As Variant
    Dim objShell As Object
    Dim objFileSystem As Object
   
    'Select an Outlook Folder
    Set objFolder = Outlook.Application.Session.PickFolder
 
    If Not (objFolder Is Nothing) Then
       'Create a temp folder
       varTempFolder = "E:\" & objFolder.Name & Format(Now, "YYMMDDHHMMSS")
       MkDir (varTempFolder)
       varTempFolder = varTempFolder & "\"
   
       'Save each email as msg file
       For Each objItem In objFolder.Items
 
           If TypeOf objItem Is MailItem Then
              Set objMail = objItem
              strSubject = objMail.Subject
              strSubject = Replace(strSubject, "/", " ")
              strSubject = Replace(strSubject, "\", " ")
              strSubject = Replace(strSubject, ":", "")
              strSubject = Replace(strSubject, "?", " ")
              strSubject = Replace(strSubject, Chr(34), " ")
 
              objMail.SaveAs varTempFolder & strSubject & ".msg", olMSG
           End If
       Next
 
       'Create a new ZIP file
       varZipFile = "E:\" & objFolder.Name & " Emails.zip"
       Open varZipFile For Output As #1
       Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
       Close #1
 
       'Add the exported msg files to the ZIP file
       Set objShell = CreateObject("Shell.Application")
       objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items

       On Error Resume Next
       Do Until objShell.NameSpace(varZipFile).Items.Count = objShell.NameSpace(varTempFolder).Items.Count
          Application.Wait (Now + TimeValue("0:00:01"))
       Loop
       On Error GoTo 0
 
       'Delete the temp folder
       Set objFileSystem = CreateObject("Scripting.FileSystemObject")
       objFileSystem.DeleteFolder Left(varTempFolder, Len(varTempFolder) - 1)
    End If
End Sub

VBA代码——将一个文件夹中的所有邮件压缩成一个 Zip 文件

  1. 然后,单击“F5”键按钮运行该宏。
  2. 稍后,在弹出的对话框中,选择源Outlook文件夹并单击“确定”。选择 Outlook 文件夹
  3. 宏完成后,会出现一个Windows文件夹,里面有一个新的 zip 包含所选 Outlook 文件夹中所有电子邮件的文件,如下图所示。全新发布 Zip 文件

处理麻烦的 Outlook 文件损坏

在 Outlook 的所有常见问题中,Outlook 数据损坏无疑是最严重的。然而,实际上,这类问题随时可能发生。因此,如果您是 Outlook 的常用用户,则需要定期备份 Outlook 数据。此外,配备一个可靠的备份工具也是明智之举。 Outlook修复 实用程序,例如 DataNumen Outlook Repair.

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。