Многим пользователям нужен способ быстрого извлечения всех адресов электронной почты из тела электронного письма Outlook или даже из нескольких электронных писем. Поэтому в этой статье мы рассмотрим эту проблему и поделимся с вами быстрым методом, использующим VBA.
Когда кто-то отправляет вам электронное письмо, тело которого содержит список адресов электронной почты, если вы хотите использовать эти адреса электронной почты по каким-либо причинам, например, добавить в папку «Контакты» или другие, вы должны сначала извлечь все адреса электронной почты в теле. . Поэтому далее мы покажем вам, как этого добиться с помощью VBA.

Извлечь все адреса электронной почты из тела нескольких электронных писем Outlook
- В самом начале запустите приложение Outlook.
- Затем, попав в главное окно Outlook, вы можете нажать клавиши «Alt + F11».
- Далее в новом окне «Microsoft Visual Basic для приложений» нужно открыть неиспользуемый модуль или просто вставить новый.
- Позже вам нужно скопировать и вставить следующий код VBA в этот модуль.
Sub ExtractEmailAddresses_BodyofMultipleEmails()
Dim objSelection As Outlook.Selection
Dim objMail As Outlook.MailItem
Dim i, n As Long
Dim objWordApp As Word.Application
Dim objWordDocument As Word.Document
Dim strEmailAddresses As String
Dim objFileSystem As Object
Dim strTextFile As String
Dim objTextFile As Object
Set objSelection = Outlook.Application.ActiveExplorer.Selection
If Not (objSelection Is Nothing) Then
i = 0
n = 1
On Error Resume Next
For i = objSelection.count To 1 Step -1
Set objMail = objSelection.Item(i)
objMail.Display
Set objWordDocument = objMail.GetInspector.WordEditor
Set objWordApp = objWordDocument.Application
Set objSearchRange = objWordDocument.Range
'Find the email addresses via wildcards
With objWordApp.Selection.Find
.Text = "[A-z,0-9]{1,}\@[A-z,0-9,.]{1,}"
.MatchWildcards = True
.Execute
End With
While objWordApp.Selection.Find.Found
'Get a list of email addresses in the body
strEmailAddresses = strEmailAddresses & n & ": " & objWordApp.Selection.Text & vbCrLf
objWordApp.Selection.Find.Execute
n = n + 1
Wend
objMail.Close olDiscard
Next
End If
'Create a new Text file
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTextFile = "E:\Extracted Email Addresses-" & Format(Date, "YYYYMMDD") & ".txt"
Set objTextFile = objFileSystem.CreateTextFile(strTextFile, True)
'Input the list of extracted email addresses into this Text file
objTextFile.WriteLine (strEmailAddresses)
objTextFile.Close
MsgBox "Completed!", vbInformation, "Extract Email Addresses"
End Sub
- Позже вы можете выйти из текущего окна редактора VBA и продолжить добавлять новый макрос на панель быстрого доступа.
- После этого вам нужно изменить уровень безопасности макросов Outlook на низкий.
- Наконец, вы можете попробовать.
- Во-первых, в списке адресов электронной почты выберите несколько писем Outlook, из тела которых вам нужно извлечь адреса электронной почты.
- Затем нажмите новую кнопку на панели быстрого доступа.
- Когда вы получите сообщение «Завершено», вы можете перейти в предопределенную папку в коде VBA, чтобы найти новый файл .TXT.
- Откройте этот файл, и вы увидите, что все извлеченные адреса электронной почты показаны на следующем снимке экрана:
Защита Outlook от вредоносных макросов
Если вы настроили Outlook на разрешение всех макросов, вы должны следить за всеми макросами, замаскированными в неизвестных электронных письмах. Это связано с тем, что они могут содержать множество скрытых вирусов, которые могут напрямую вызвать повреждение Outlook. Зараженный вирусом файл PST довольно сложно восстановить. В то время, возможно, вашим последним средством является мощное и надежное Исправление Outlook утилита, например DataNumen Outlook Repair. Он может восстановить файл Outlook независимо от степени повреждения.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая поврежденный sql и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com


