Talvez você tenha armazenado vários e-mails do Outlook no formato .msg em uma pasta do Windows. E mais tarde, você deseja extrair os anexos desses arquivos, você pode usar o caminho compartilhado neste artigo.
É muito fácil extrair anexos de e-mails em seu Outlook. Mas e os e-mails que foram exportados como arquivos .msg em uma pasta do Windows? Em geral, você deve primeiro abrir esses arquivos .msg em seu Outlook e, em seguida, salvar os anexos deles, um por um. Talvez você ache muito pesado. Portanto, a seguir, ensinaremos outra solução muito mais rápida.
Extrair anexos de todos os arquivos de mensagens do Outlook em uma pasta do Windows
- Para começar, abra o aplicativo Outlook e execute o editor VBA.
- Em seguida, na janela “Microsoft Visual Basic for Applications”, copie o código VBA abaixo em um módulo não utilizado.
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
- Em seguida, mova o cursor para a primeira sub-rotina e pressione a tecla “F5”.
- Posteriormente, você deverá escolher a pasta de origem do Windows na caixa de diálogo pop-up.
- Depois de clicar em “OK”, a macro continuará a funcionar.
- Quando terminar, você receberá a mensagem “Concluído”.
- Agora, você pode obter acesso à pasta local predefinida para salvar os anexos extraídos.
Resolva problemas do Outlook com eficiência
Como o Outlook é reconhecidamente propenso a erros, você deve ser cauteloso ao lidar com objetos do Outlook, como nunca confiar nos arquivos ou links incorporados nos e-mails desconhecidos e assim por diante. Caso contrário, seu arquivo do Outlook pode ser corrompido facilmente. Nessa circunstância, mesmo a ferramenta de correção interna não será de muita ajuda. O que você pode recorrer é apenas um utilitário externo experiente, como DataNumen Outlook Repair. Pode corrigir PST arquivo com facilidade sem esforço.
Introdução do autor:
Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo sql corrompido e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com


