Возможно, вы сохранили несколько электронных писем Outlook в формате .msg в папке Windows. А позже, когда вы захотите извлечь вложения из этих файлов, вы можете использовать способ, описанный в этой статье.
Довольно легко извлекать вложения из электронных писем в Outlook. Но как насчет электронных писем, которые были экспортированы в виде файлов .msg в папку Windows? Как правило, вы должны сначала открыть эти файлы .msg в своем Outlook, а затем сохранить вложения из них одно за другим. Возможно, вам покажется это слишком громоздким. Итак, после этого мы научим вас другому гораздо более быстрому решению.
Извлечение вложений из всех файлов сообщений Outlook в папке Windows
- Для начала сtarОткройте приложение Outlook и запустите редактор VBA.
- Затем в окне «Microsoft Visual Basic для приложений» скопируйте приведенный ниже код 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
- Затем переместите курсор на первую подпрограмму и нажмите клавишу «F5».
- После этого вам потребуется выбрать исходную папку Windows во всплывающем диалоговом окне.
- После нажатия «ОК» макрос продолжит работу.
- Когда он завершится, вы получите сообщение «Completed».
- Теперь вы можете получить доступ к предопределенной локальной папке для сохранения извлеченных вложений.
Эффективное решение проблем с Outlook
Поскольку Outlook, по общему признанию, подвержен ошибкам, вы должны проявлять осторожность при работе с объектами Outlook, например, никогда не доверять файлам или ссылкам, встроенным в неизвестные электронные письма, и так далее. В противном случае ваш файл Outlook может быть легко поврежден. В этом случае даже внутренний инструмент исправления не поможет. К чему можно прибегнуть, так это к опытной внешней утилите, например DataNumen Outlook Repair. Он может исправить PST файл с легкостью.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая поврежденный sql и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com


