Как автоматически сохранять каждое входящее электронное письмо на жесткий диск через Outlook VBA

Поделись сейчас:

Пользователь может захотеть сохранить электронные письма на жестком диске, чтобы просматривать их независимо от Outlook или делиться ими с кем-то еще. В этой статье мы расскажем, как это сделать автоматически через VBA.

Экспорт писем из Outlook

Файл сообщения 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

Как запустить скрипт

Press Alt + F11 Откройте редактор VBA Outlook и вставьте приведенный выше код в поле «ThisOutlookSession». Перед запуском скрипта убедитесь, что папка «C:\MyEmails» существует и у пользователя есть права на запись в нее. Кроме того, важно знать, что перед запуском этого скрипта необходимо добавить библиотеку объектов Microsoft Outlook XX в ссылки проекта через меню «Инструменты», где XX — это версия библиотеки.

Понять сценарий

В скрипте процедура “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

Поделись сейчас:

Комментарии закрыты.