Um usuário pode querer salvar e-mails no disco rígido para visualizá-los independentemente do Outlook ou para compartilhar com outra pessoa. Neste artigo, apresentaremos como fazer isso automaticamente via VBA.
Exportar e-mails do Outlook
Nem todo usuário da Internet usa o Outlook como um cliente de e-mail e pode estar usando um alternativo. Também pode haver uma situação em que um e-mail precise ser compartilhado com alguém, sem enviar o e-mail real. Também para fins de documentação e escrutínio, os e-mails são frequentemente apresentados como prova. Para tais cenários, o Outlook oferece um método para exportar um e-mail independentemente como um arquivo .msg ou .html. O script VBA a seguir salva todos os e-mails recebidos automaticamente em um local predefinido no disco rígido sem intervenção do usuário no formato html. Depois de salvo, o e-mail pode ser visualizado em qualquer navegador de Internet sem a necessidade de um cliente de e-mail.
Script VBA do Outlook
Abaixo está o script VBA completo do Outlook:
Private WithEvents Items As Outlook.Items
Private Count As Integer
Private Sub Application_Startup()
Dim objApp As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
' Get the items in the Inbox folder
Set objApp = Outlook.Application
Set objNameSpace = objApp.GetNamespace("MAPI")
Set Items = objNameSpace.GetDefaultFolder(olFolderInbox).Items
' Initialize count
Count = 1
End Sub
Private Sub Items_ItemAdd(ByVal objItem As Object)
On Error GoTo ShowError
Dim objMail As Outlook.MailItem
' Check if the item is a mail. If yes, then save it as a HTML file and update Count
If TypeName(objItem) = "MailItem" Then
Set objMail = objItem
objMail.SaveAs "C:\MyEmails\MyEmail" & CStr(Count), olHTML
Count = Count + 1
End If
Exit Sub
ShowError:
MsgBox Err.Number & " - " & Err.Description
End Sub
Como executar o script

Entenda o roteiro
No script, a rotina “Items_ItemAdd” será acionada para cada item recebido na pasta Caixa de Entrada. A função “TypeName” serve para garantir que a rotina continue apenas se o item for um e-mail e não outro tipo de objeto do Outlook. Se você arrastar um e-mail de outra pasta, como “Itens Enviados”, para a Caixa de Entrada, a rotina ainda funcionará. É importante observar que “Items_ItemAdd” só será acionada se um e-mail for adicionado à pasta principal Caixa de Entrada. Se houver subpastas dentro da Caixa de Entrada, o código não funcionará se um e-mail for adicionado a alguma delas. Para que funcione com outras pastas, “Items_ItemAdd” deve ser associado à pasta específica na rotina “Application_Startup”. No script acima, o formato olHTML pode ser substituído pelos formatos olMSG, olRTF, olDoc ou olTxt. O formato de nome padrão para cada e-mail a ser salvo é “MeuEmail##”, onde ## é a contagem, começando em 1 e aumentando incrementalmente. Por exemplo, o décimo segundo e-mail recebido após a execução deste script será salvo como “MeuEmail12”.
Recuperação de dados após falha do Outlook
Não é um cenário muito incomum o Outlook quebrar e os usuários acabarem perdendo uma grande quantidade de dados. A recuperação de tais situações pode ser uma tarefa muito difícil e demorada. Para facilitar sua vida nesses casos, você pode usar um Recuperação de dados do Outlook ferramenta para uma recuperação eficiente e livre de bugs.
Introdução do autor:
Mary Underwood é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperação de dwg e rar produtos de software de recuperação. Para mais informações visite www.datanumen.com