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

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Siluvia Last modified

Пытались ли вы когда-нибудь извлечь адрес электронной почты из поля «От» одного или нескольких полученных писем в 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 с более чем100 невероятными функциями! Нажмите, чтобы скачать прямо сейчас!

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

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

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

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

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

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

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

Используйте Kutools на вашем языке – поддерживаются Английский, Испанский, Немецкий, Французский, Китайский и более40 других!

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

kutools for outlook features1 kutools for outlook features2

🚀 Скачайте все дополнения Office одним кликом

Рекомендуем: Kutools для Office (5-в-1)

Скачайте сразу пять установщиков одним кликом — Kutools для Excel, Outlook, Word, PowerPoint и Office Tab Pro. Нажмите, чтобы скачать прямо сейчас!

  • Все просто: скачайте все пять установочных пакетов одним действием.
  • 🚀 Готово для любой задачи Office: Установите нужные дополнения тогда, когда они вам понадобятся.
  • 🧰 Включено: Kutools для Excel / Kutools для Outlook / Kutools для Word / Office Tab Pro / Kutools для PowerPoint