If you're in marketing, data management, or just need to sort through contacts, there will be a time when extracting all email addresses in Outlook 365 is necessary. Whether it's to back up contact details, send bulk communications, or migrate data to another platform, having an email address list can prove invaluable. Luckily, there are some free ways to do this, even without premium software or developer tools.
In this article, we'll walk you through free, real-world methods for extracting email addresses from Outlook 365, both from contacts and from received/sent emails.
________________________________________
1. Export Email Addresses from Contacts in Outlook 365
If you’ve saved people in your contacts list, this is the easiest way to extract their email addresses.
Step-by-Step Process:
1. Log in to your Outlook 365 account via a web browser.
2. Click the App Launcher (grid icon) in the top-left corner and choose People to access your contacts.
3. In the People tab, select Manage > Export Contacts.
4. Choose whether to export all contacts or just a specific folder.
5. Hit Export, and Outlook will save a CSV file.
This CSV file will have all the information you need, including names and email addresses. You can import the file into Excel or Google Sheets to sort and extract the email addresses as desired.
________________________________________
2. Extract Email Addresses from Sent or Received Emails
Occasionally, you want email addresses you don't have in your contacts but received in your inbox or sent mail. Doing them manually would be an eternity, but there's a better way to do it.
Method: Use Outlook Desktop with VBA Macro (Free)
If you can access the Outlook desktop application (which most Outlook 365 users can), then you can use a VBA macro to pull out email addresses.
Here's how:
1. Open Outlook Desktop.
2. Press ALT + F11 to launch the Visual Basic for Applications (VBA) editor.
3. Go to Insert > Module and insert the following macro:
vba
CopyEdit
Sub ExtractEmailAddresses()
Dim ns As Outlook.Namespace
Dim Inbox As Outlook.MAPIFolder
Dim Mail As Outlook.MailItem
Dim Folder As Outlook.MAPIFolder
Dim i As Integer
Dim EmailList As String
Dim ns As Application.GetNamespace("MAPI")
Dim Folder As MAPIFolder
Set ns = Application.GetNamespace("MAPI")
Set Folder = ns.PickFolder
If Folder Is Nothing Then Exit Sub
For i = 1 To Folder.Items.Count
If Folder.Items(i).Class = olMail Then
Set Mail = Folder.Items(i)
End If
Next 'i
EmailList = EmailList & Mail.SenderEmailAddress & vbCrLf
End If
Next i
' Create a new text file on your desktop
Dim FilePath As String
FilePath = Environ("USERPROFILE") & "\Desktop\ExtractedEmails.txt"
Open FilePath For Output As #1
Print #1, EmailList
Close #1
MsgBox "Emails extracted to: " & FilePath
End Sub
4. Execute the macro by pressing F5 or by going to the "Run" menu.
5. Choose the directory you wish to check (e.g., Inbox, Sent Items).
6. The macro will extract emails and print sender addresses to a file on your desktop.
Note: This technique captures sender addresses. To capture recipient addresses, change the macro to iterate through the Recipients of each mail.
______________________________________
3. Use Microsoft Power Automate (No Code Required)
Power Automate (previously Microsoft Flow) is a no-cost addition to most Office 365 subscriptions. It can automate processes, including reading and writing email information.
Steps:
1. Go to https://make.powerautomate.com.
2. Set up a new automated flow that runs when a new email is received.
3. Add an action to add the sender's email address to an Excel or OneDrive spreadsheet.
It creates a live history of all arriving email addresses over time.
It is slow to configure and only saves future emails — not historical ones — but it's a simple, free, no-code solution that works.
________________________________________
4. Copy-Paste Method with Excel (For Minor Tasks)
If you merely require a few addresses out of your inbox or sent box, you can:
1. Highlight several emails in Outlook.
2. Right-click > Copy.
3. Paste into Notepad or Word.
4. Apply Excel functionality (such as Text to Columns or regex in Google Sheets) to extract email addresses.
It is not scalable but is useful for fast one-off tasks.
________________________________________
Final Tips
• Deduplication: Employ Excel's "Remove Duplicates" functionality to de-duplicate your email list.
• Sorting & Filtering: To filter by domain or extract particular types of addresses, the assistant
• Privacy Caution: Never use or share gathered email addresses without consent — particularly in mass marketing.
________________________________________
Conclusion
Extracting email addresses from Outlook 365 doesn't have to be expensive. Whether extracting from contacts, inbox folders, or automating, several free techniques exist for power users and beginners. For one-time export, utilize the CSV from contacts. For bulk or historical extraction, the VBA macro approach is extremely effective. And for continuous automation, Power Automate is a no-code, free tool that keeps your list updated in real-time.
With the proper tools and an hour or two, you can mine, sort, and leverage your Outlook 365 email information efficiently and ethically without paying a dime.