Пользователь может захотеть сохранить электронные письма на жестком диске, чтобы просматривать их независимо от Outlook или делиться ими с кем-то еще. В этой статье мы расскажем, как это сделать автоматически через VBA.
Экспорт писем из Outlook
Не каждый пользователь Интернета использует Outlook в качестве почтового клиента и может использовать альтернативный. Также может возникнуть ситуация, когда электронная почта должна быть передана кому-то без отправки фактической электронной почты. Также в целях документирования и проверки электронные письма часто представляются в качестве доказательств. Для таких сценариев Outlook предлагает метод независимого экспорта электронной почты в виде файла .msg или .html. Следующий сценарий VBA автоматически сохраняет каждое входящее электронное письмо в предопределенном месте на жестком диске без вмешательства пользователя в формате html. После сохранения электронное письмо можно просмотреть в любом интернет-браузере без использования почтового клиента.
Скрипт Outlook VBA
Ниже приведен полный сценарий Outlook VBA:
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
Как запустить скрипт

Понять сценарий
В скрипте процедура “Items_ItemAdd” будет запускаться для каждого входящего элемента в папку «Входящие». Функция “TypeName” дополнительно гарантирует, что процедура будет продолжаться только в том случае, если элемент является электронным письмом, а не каким-либо другим типом объекта Outlook. Если вы перетащите электронное письмо из любой другой папки, например, “Отправленные”, в папку «Входящие», процедура все равно будет работать и выполнять свою задачу. Важно помнить, что “Items_ItemAdd” будет запускаться только в том случае, если электронное письмо добавлено в основную папку «Входящие». Если внутри основной папки «Входящие» есть вложенные папки, код не будет работать, если электронное письмо добавлено в любую из них. Чтобы это работало для любых других папок, “Items_ItemAdd” следует связать с этой конкретной папкой в процедуре “Application_Startup”. В приведенном выше скрипте формат olHTML можно заменить форматами olMSG, olRTF, olDoc или olTxt. По умолчанию для сохранения каждого электронного письма используется формат именования «MyEmail##», где ## — это счетчик, начиная с 1 и увеличиваясь по порядку. Например, двенадцатое входящее письмо после выполнения этого скрипта будет сохранено как «MyEmail12».
Восстановление данных после сбоя Outlook
Нередки случаи, когда Outlook выходит из строя, и пользователи в конечном итоге теряют большое количество данных. Выход из таких ситуаций может быть очень сложной и трудоемкой задачей. Чтобы облегчить себе жизнь в таких случаях, можно использовать Восстановление данных Outlook инструмент для эффективного и безошибочного восстановления.
Об авторе:
Мэри Андервуд — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановление dwg и rar программные продукты для восстановления. Для получения дополнительной информации посетите www.datanumen.com