Перейти к содержимому

Как получить адрес электронной почты отправителя из одного или нескольких писем в Outlook?

Author: Siluvia Last Modified: 2025-06-05

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


Получите адрес электронной почты отправителя из одного или нескольких писем в Outlook

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

1. Откройте папку с письмами, выберите письмо, из которого хотите получить адрес электронной почты отправителя. Нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

Примечание: Чтобы выбрать несколько писем, удерживайте клавишу Ctrl и затем выбирайте письма по одному.

2. В окне Microsoft Visual Basic for Applications нажмите Вставить > Модуль, затем скопируйте следующий код VBA в окно Модуль (код).

steps on getting the sender’s email address from one or more emails in Outlook

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

Sub GetSmtpAddressOfSelectionEmail()
  Dim xExplorer As Explorer
  Dim xSelection As Selection
  Dim xItem As Object
  Dim xMail As MailItem
  Dim xAddress As String
  Dim xFldObj As Object
  Dim FilePath As String
  Dim xFSO As Scripting.FileSystemObject
  On Error Resume Next
  Set xExplorer = Application.ActiveExplorer
  Set xSelection = xExplorer.Selection
  For Each xItem In xSelection
    If xItem.Class = olMail Then
      Set xMail = xItem
      xAddress = xAddress & VBA.vbCrLf & "  " & GetSmtpAddress(xMail)
    End If
  Next
  If MsgBox("Sender SMTP Address is: " & xAddress & vbCrLf & vbCrLf & "Do you want to export the address list to a txt file? ", vbYesNo, "Kutools for Outlook") = vbYes Then
    Set xFldObj = CreateObject("Shell.Application").BrowseforFolder(0, "Select a Folder", 0, 16)
    Set xFSO = New Scripting.FileSystemObject
    If xFldObj Is Nothing Then Exit Sub
    FilePath = xFldObj.Items.Item.Path & "\Address.txt"
    Close #1
    Open FilePath For Output As #1
    Print #1, "Sender SMTP Address is: " & xAddress
    Close #1
    Set xFSO = Nothing
    Set xFldObj = Nothing
    MsgBox "Address list has been exported to:" & FilePath, vbOKOnly + vbInformation, "Kutools for Outlook"
  End If
End Sub
Function GetSmtpAddress(Mail As MailItem)
  Dim xNameSpace As Outlook.NameSpace
  Dim xEntryID As String
  Dim xAddressEntry As AddressEntry
  Dim PR_SENT_REPRESENTING_ENTRYID As String
  Dim PR_SMTP_ADDRESS As String
  Dim xExchangeUser As exchangeUser
  On Error Resume Next
  GetSmtpAddress = ""
  Set xNameSpace = Application.Session
  If Mail.sender.Type <> "EX" Then
    GetSmtpAddress = Mail.sender.Address
  Else
    PR_SENT_REPRESENTING_ENTRYID = "http://schemas.microsoft.com/mapi/proptag/0x00410102"
    xEntryID = Mail.PropertyAccessor.BinaryToString(Mail.PropertyAccessor.GetProperty(PR_SENT_REPRESENTING_ENTRYID))
    Set xAddressEntry = xNameSpace.GetAddressEntryFromID(xEntryID)
    If xAddressEntry Is Nothing Then Exit Function
    If xAddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Or xAddressEntry.AddressEntryUserType = olExchangeRemoteUserAddressEntry Then
      Set xExchangeUser = xAddressEntry.GetExchangeUser()
      If xExchangeUser Is Nothing Then Exit Function
      GetSmtpAddress = xExchangeUser.PrimarySmtpAddress
    Else
      PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
      GetSmtpAddress = xAddressEntry.PropertyAccessor.GetProperty(PR_SMTP_ADDRESS)
    End If
  End If
End Function

3. Нажмите Инструменты > Ссылки, затем отметьте флажок Microsoft Scripting Runtime в диалоговом окне Ссылки – Project1.

steps on getting the sender’s email address from one or more emails in Outlook

4. Нажмите клавишу F5 для запуска кода. Затем появится диалоговое окно Kutools for Outlook, в котором будут перечислены все адреса электронной почты отправителей выбранных писем.

Примечание:

Если вам нужно экспортировать список адресов в файл txt, нажмите кнопку Да.
Или нажмите кнопку Нет, чтобы завершить процесс.
steps on getting the sender’s email address from one or more emails in Outlook

5. После нажатия кнопки Да появится диалоговое окно Обзор папок. Пожалуйста, выберите папку для сохранения файла и нажмите кнопку ОК.

steps on getting the sender’s email address from one or more emails in Outlook

6. Наконец, появится диалоговое окно Kutools for Outlook, сообщающее вам путь к экспортированному файлу. Нажмите ОК, чтобы закрыть его.

steps on getting the sender’s email address from one or more emails in Outlook

7. Перейдите в папку, где сохранен экспортированный файл, и откройте файл .txt с именем Адрес, чтобы увидеть адреса электронной почты отправителей выбранных писем.

steps on getting the sender’s email address from one or more emails in Outlook

Лучшие инструменты для повышения продуктивности в Office

Срочные новости: Kutools для Outlook запускает бесплатную версию!

Оцените совершенно новую бесплатную версию Kutools для Outlook с более чем70 потрясающими функциями — пользуйтесь ими НАВСЕГДА! Нажмите, чтобы скачать прямо сейчас!

🤖 Kutools AI : Использует передовые технологии искусственного интеллекта для легкой работы с Email: отвечает, резюмирует, оптимизирует, расширяет, переводит и составляет письма.

📧 Автоматизация Email: Автоответчик (доступно для POP и IMAP) / Запланировать отправку писем / Авто Копия/Скрытая копия по правилу при отправке писем / Автоматическое перенаправление (Расширенное правило) / Автоматическое добавление приветствия / Автоматическое разделение писем с несколькими получателями на отдельные сообщения ...

📨 Управление Email: Отозвать письмо / Блокировать мошеннические письма по теме и другим параметрам / Удалить дубликаты писем / Расширенный Поиск / Организовать папки ...

📁 Вложения Pro: Пакетное сохранение / Пакетное открепление / Пакетное сжатие / Автосохранение / Автоматическое отсоединение / Автоматическое сжатие ...

🌟 Магия интерфейса: 😊Больше красивых и крутых Эмодзи / Напоминание о важных письмах / Сворачивайте Outlook вместо закрытия ...

👍 Мгновенные действия: Ответить всем с вложениями / Антифишинговые Email / 🕘Показать часовой пояс отправителя ...

👩🏼‍🤝‍👩🏻 Контакты и Календарь: Пакетное добавление контактов из выбранных писем / Разделить группу контактов на отдельные группы / Удалить напоминание о дне рождения ...

Мгновенно активируйте Kutools для Outlook одним кликом. Не ждите — скачайте сейчас и повысьте свою эффективность!

kutools for outlook features1 kutools for outlook features2