Може би сте съхранили множество имейли на Outlook във формат .msg в папка на Windows. И по-късно, ако искате да извлечете прикачените файлове от тези файлове, можете да използвате начина, споделен в тази статия.
Извличането на прикачени файлове от имейлите във вашия Outlook е доста лесно. Но какво да кажем за имейлите, които са експортирани като .msg файлове в папка на Windows? Като цяло първо трябва да отворите тези .msg файлове във вашия Outlook и след това да запазите прикачени файлове от тях един по един. Може би ще ви се стори твърде тромаво. Така че, по-нататък ще ви научим на още едно много по-бързо решение.
Извличане на прикачени файлове от всички файлове със съобщения на Outlook в папка на Windows
- За начало стартирайте приложението Outlook и изпълнете VBA редактора.
- След това в прозореца „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
- След това преместете курсора в първата подпрограма и натиснете бутона „F5“.
- След това ще трябва да изберете изходната папка на Windows в изскачащия диалогов прозорец.
- След като щракнете върху „OK“, макросът ще продължи да работи.
- Когато приключи, ще получите съобщението „Завършено“.
- Сега можете да получите достъп до предварително дефинираната локална папка за запазване на извлечени прикачени файлове.
Решаване на проблеми с Outlook ефективно
Тъй като Outlook несъмнено е склонен към грешки, трябва да внимавате, докато работите с обекти на Outlook, като никога да не се доверявате на файловете или връзките, вградени в неизвестните имейли и т.н. В противен случай вашият файл на Outlook може лесно да се повреди. При това обстоятелство дори инструментът за вътрешно коригиране няма да бъде от голяма помощ. Това, до което можете да прибегнете, е само опитна външна програма, като DataNumen Outlook Repair, То може коригирайте PST файл с лекота без усилие.
Въведение на автора:
Шърли Джанг е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително повреден sql и outlook софтуерни продукти за ремонт. За повече информация посетете WWW.datanumen.com


