Как получить адрес электронной почты отправителя из одного или нескольких писем в Outlook?
Пытались ли вы когда-нибудь извлечь адрес электронной почты из поля «От» одного или нескольких полученных писем в Outlook? Эта статья предоставляет код VBA, который поможет вам справиться с этой задачей.
Получите адрес электронной почты отправителя из одного или нескольких писем в Outlook
Пожалуйста, выполните следующий код VBA для извлечения адреса электронной почты из поля «От» одного или нескольких полученных писем в Outlook.
1. Откройте папку с письмами, выберите письмо, из которого хотите получить адрес электронной почты отправителя. Нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
Примечание: Чтобы выбрать несколько писем, удерживайте клавишу Ctrl и затем выбирайте письма по одному.
2. В окне Microsoft Visual Basic for Applications нажмите Вставить > Модуль, затем скопируйте следующий код VBA в окно Модуль (код).

Код 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.

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

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

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

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

Лучшие инструменты для повышения продуктивности работы с Office
Срочные новости: бесплатная версия Kutools для Outlook уже доступна!
Оцените обновленный Kutools для Outlook с более чем100 невероятными функциями! Нажмите, чтобы скачать прямо сейчас!
📧 Автоматизация Email: Автоответчик (Доступно для POP и IMAP) / Запланировать отправку писем / Авто Копия/Скрытая копия по правилам при отправке писем / Автоматическое перенаправление (Расширенное правило) / Автоматически добавить приветствие / Авторазделение Email с несколькими получателями на отдельные письма ...
📨 Управление Email: Отозвать письмо / Блокировать вредоносные письма по теме и другим критериям / Удалить дубликаты / Расширенный Поиск / Организовать папки ...
📁 Вложения Pro: Пакетное сохранение / Пакетное открепление / Пакетное сжатие / Автосохранение / Автоматическое отсоединение / Автоматическое сжатие ...
🌟 Волшебство интерфейса: 😊Больше красивых и стильных эмодзи / Напоминание при поступлении важных писем / Свернуть Outlook вместо закрытия ...
👍 Удобные функции одним кликом: Ответить всем с вложениями / Антифишинговая Email / 🕘Показать часовой пояс отправителя ...
👩🏼🤝👩🏻 Контакты и Календарь: Пакетное добавление контактов из выбранных Email / Разделить группу контактов на отдельные / Удалить напоминание о дне рождения ...
Используйте Kutools на вашем языке – поддерживаются Английский, Испанский, Немецкий, Французский, Китайский и более40 других!


🚀 Скачайте все дополнения 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