如何从 Windows 文件夹中的所有 Outlook 邮件文件中快速提取附件

立即分享:

也许您在 Windows 文件夹中以 .msg 格式存储了多封 Outlook 电子邮件。 之后,你想从这些文件中提取附件,可以使用本文分享的方式。

从 Outlook 中的电子邮件中提取附件非常容易。 但是在 Windows 文件夹中导出为 .msg 文件的电子邮件呢? 通常,您必须先在 Outlook 中打开这些 .msg 文件,然后将其中的附件一一保存。 也许你会觉得太麻烦了。 因此,在下文中,我们将教您另一种更快的解决方案。

从 Windows 文件夹中的所有 Outlook 邮件文件中提取附件

  1. 首先,启动 Outlook 应用程序并运行 VBA 编辑器。
  2. 然后,在“Microsoft Visual Basic for Applications”窗口中,将下面的 VBA 代码复制到一个未使用的模块中。
Dim strAttachmentFolder As String

Sub ExtractAttachmentsFromEmailsStoredinWindowsFolder()
    Dim objShell, objWindowsFolder As Object
 
    'Select a Windows folder
    Set objShell = CreateObject("Shell.Application")
    Set objWindowsFolder = objShell.BrowseForFolder(0, "Select a Windows Folder:", 0, "")
 
    If Not objWindowsFolder Is Nothing Then
       'Create a new folder for saving extracted attachments
       strAttachmentFolder = "E:\Attachments-" & Format(Now, "MMDDHHMMSS") & "\"
       MkDir (strAttachmentFolder)
       Call ProcessFolders(objWindowsFolder.self.Path & "\")
       MsgBox "Completed!", vbInformation + vbOKOnly
    End If
End Sub

Sub ProcessFolders(strFolderPath As String)
    Dim objFileSystem As Object
    Dim objFolder As Object
    Dim objFiles As Object
    Dim objFile As Object
    Dim objItem As Object
    Dim i As Long
    Dim objSubFolder As Object

    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(strFolderPath)
    Set objFiles = objFolder.Files
 
    For Each objFile In objFiles
        If objFileSystem.GetExtensionName(objFile) = "msg" Then
           'Open the Outlook emails stored in Windows folder
           Set objItem = Session.OpenSharedItem(objFile.Path)

           If TypeName(objItem) = "MailItem" Then
              If objItem.Attachments.Count > 0 Then
                 'Extract attachments
                 For i = objItem.Attachments.Count To 1 Step -1
                     objItem.Attachments(i).SaveAsFile strAttachmentFolder & objItem.Attachments(i).FileName
                 Next
              End If
           End If
        End If
    Next
 
    'Process all subfolders recursively
    If objFolder.SubFolders.Count > 0 Then
       For Each objSubFolder In objFolder.SubFolders
           If ((objSubFolder.Attributes And 2) = 0) And ((objSubFolder.Attributes And 4) = 0) Then
              Call ProcessFolders(objSubFolder.Path)
           End If
       Next
    End If
End Sub

VBA 代码 - 从 Windows 文件夹中的所有 Outlook 邮件文件中提取附件

  1. 随后,将光标移动到第一个子程序并按下“F5”键按钮。
  2. 之后,您需要在弹出的对话框中选择源 Windows 文件夹。选择 Windows 文件夹
  3. 单击“确定”后,宏将继续工作。
  4. 完成后,您将收到“已完成”消息。
  5. 现在,您可以访问预定义的本地文件夹以保存提取的附件。提取的附件

高效解决前景问题

由于 Outlook 公认容易出错,因此在处理 Outlook 对象时必须保持谨慎,例如永远不要相信未知电子邮件中嵌入的文件或链接等。 否则,您的 Outlook 文件很容易损坏。 在那种情况下,即使是内部修复工具也无济于事。 您只能求助于经验丰富的外部实用程序,例如 DataNumen Outlook Repair。 它可以 修复 PST 毫不费力地归档。

作者简介:

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

立即分享:

评论被关闭。