如何从多封 Outlook 邮件正文中快速提取所有邮件地址

立即分享:

许多用户都渴望有一种方法可以从 Outlook 邮件甚至多封邮件的正文中快速提取所有电子邮件地址。 因此,本文将针对这个问题,为大家分享一个使用VBA的快速方法。

当有人向您发送一封正文包含电子邮件地址列表的电子邮件时,如果您出于某些原因想要使用这些电子邮件地址,例如添加到您的联系人文件夹或其他,您必须首先提取正文中的所有电子邮件地址. 因此,在下文中,我们将向您展示如何使用VBA 来实现它。

从多个 Outlook 电子邮件的正文中快速提取所有电子邮件地址

从多个 Outlook 电子邮件的正文中提取所有电子邮件地址

  1. 首先,启动您的 Outlook 应用程序。
  2. 然后,进入 Outlook 主窗口后,您可以按“Alt + F11”键。
  3. 接下来,在新的“Microsoft Visual Basic for Applications”窗口中,您需要打开一个未使用的模块或简单地插入一个新模块。
  4. 稍后,您必须将以下 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 电子邮件的正文中提取所有电子邮件地址

  1. 稍后,您可以退出当前的 VBA 编辑器窗口并继续将新宏添加到快速访问工具栏。
  2. 之后,您必须将 Outlook 宏安全级别更改为低。
  3. 最后,你可以试试看。
  • 首先,在电子邮件列表中,选择多封 Outlook 电子邮件,您需要从其正文中提取电子邮件地址。
  • 然后单击快速访问工具栏中的新按钮。选择电子邮件并运行宏
  • 当您收到提示“已完成”的消息时,您可以转到 VBA 代码中的预定义文件夹以查找新的 .TXT 文件。
  • 打开这个文件,你会看到所有提取的电子邮件地址,如下截图所示:提取的电子邮件地址

保护 Outlook 免受恶意宏的侵害

如果您已将 Outlook 设置为允许所有宏,则必须留意未知电子邮件中伪装的所有宏。 这是因为它们可能包含很多隐藏的病毒,这些病毒会直接导致 Outlook 损坏。 受病毒感染的 PST 文件很难恢复。 到时候,或许你不得已的手段是强而可靠的 展望修复 实用程序,例如 DataNumen Outlook Repair. 无论损坏程度如何,它都可以修复 Outlook 文件。

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 损坏的sql 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。