Być może masz wiele wiadomości e-mail programu Outlook w formacie .msg w folderze systemu Windows. A później, jeśli chcesz wyodrębnić załączniki z tych plików, możesz skorzystać ze sposobu udostępnionego w tym artykule.
Wyodrębnienie załączników z wiadomości e-mail w programie Outlook jest dość łatwe. Ale co z e-mailami, które zostały wyeksportowane jako pliki .msg w folderze Windows? Ogólnie rzecz biorąc, musisz najpierw otworzyć te pliki .msg w programie Outlook, a następnie pojedynczo zapisywać z nich załączniki. Być może uznasz to za zbyt uciążliwe. Dlatego później nauczymy Cię innego, znacznie szybszego rozwiązania.
Wyodrębnij załączniki ze wszystkich plików wiadomości programu Outlook w folderze systemu Windows
- Na początek uruchom aplikację Outlook i edytor VBA.
- Następnie w oknie „Microsoft Visual Basic for Applications” skopiuj poniższy kod VBA do nieużywanego modułu.
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
- Następnie przesuń kursor do pierwszego podprogramu i naciśnij klawisz „F5”.
- Następnie będziesz musiał wybrać źródłowy folder Windows w wyskakującym oknie dialogowym.
- Po kliknięciu „OK” makro będzie dalej działać.
- Po zakończeniu otrzymasz komunikat „Ukończono”.
- Teraz możesz uzyskać dostęp do wstępnie zdefiniowanego folderu lokalnego do zapisywania wyodrębnionych załączników.
Efektywnie rozwiązuj problemy z perspektywami
Ponieważ Outlook jest wprawdzie podatny na błędy, musisz zachować ostrożność podczas pracy z obiektami Outlooka, na przykład nigdy nie ufaj plikom lub linkom osadzonym w nieznanych wiadomościach e-mail i tak dalej. W przeciwnym razie plik programu Outlook może łatwo ulec uszkodzeniu. W takiej sytuacji nawet wewnętrzne narzędzie naprawcze nie będzie zbyt pomocne. Możesz skorzystać tylko z doświadczonego narzędzia zewnętrznego, takiego jak DataNumen Outlook Repair. To może naprawić PST plik z łatwością.
Wprowadzenie autora:
Shirley Zhang jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym uszkodzony plik sql i oprogramowanie do naprawy programu Outlook. po więcej informacji odwiedź www.datanumen.com


