Share via

Export All Emails to CSV with Dates

Matthaniel Cowell 20 Reputation points
2026-04-15T01:38:15.92+00:00

How do I export a CSV table of all my emails with the following columns (ALL COLUMNS REQUIRED)? I must export to a TABLE, and cannot export to PST.

The table of the data should look precisely like the below (the Date Received column is very important to answering my question):

Day Received From To Subject
03/01/2025 ******@contoso.net ******@contoso.net Re: Quarterly Projections
03/02/2025 ******@contoso.net ******@contoso.net Social Event Friday

Edit: Added some clarifying conditions to the request.

Outlook | Windows | Classic Outlook for Windows | For business
0 comments No comments

Answer accepted by question author

  1. Steven-N 25,305 Reputation points Microsoft External Staff Moderator
    2026-04-15T03:47:05.7166667+00:00

    Please note that Q&A forum is a public platform, and moderators will modify the question to hide personal information in the description. Kindly ensure that you hide any personal or organizational information the next time you post an error or other details to protect personal data.

    Hi Matthaniel Cowell

    Based on your description, I have conducted some test in my environment and found that you have 3 options in this context, you can try each and get back to me with the results:

    Option 1: Using Export build-in function

    Kindly follow the below instructions:

    1. At the top of the ribbon in classic Outlook, choose File.
    2. Choose Open & Export > Import/Export.
    3. Choose Export to a file > Next.
    4. Choose this option >> Next until finish export the file

    User's image

    However, the built-in export includes many columns but does not let you choose specific columns. You'll get fields like Subject, From, To, Received, etc. mixed in with many others. So, you'll need to open the CSV in Excel and delete the unwanted columns afterwards.

    Option 2: Custom View + copy to Excel

    1. Go to View > Current View > View Settings > Columns
    2. Add only: Date Received, From, To, Subject > remove all others
    3. Also go to View > View Settings > Sort > Sort by Date Received
    4. Press Ctrl+A to select all emails and Copy (Ctrl+C) and paste into Excel

    Kindly note that Outlook's built-in "From" and "To" columns only show the display name does not include domain

    User's image

    Option 3: Using PowerShell

    This is the approach, which is closest to your requirement,  please make sure Outlook is open and logged in and run the cmdlet below:

    Connect-ExchangeOnline
    $outlook = New-Object -ComObject Outlook.Application
    $inbox = $outlook.GetNamespace("MAPI").GetDefaultFolder(6)
    $SMTP_TAG = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
    
    $emails = foreach ($item in $inbox.Items) {
        if ($item -is [Microsoft.Office.Interop.Outlook.MailItem]) {
    
            # 1. Try to get Sender SMTP silently
            $fromAddress = $null
            try {
                $fromAddress = $item.PropertyAccessor.GetProperty($SMTP_TAG)
            } catch {
                $fromAddress = $item.SenderEmailAddress
            }
    
            # 2. Try to get Recipient SMTPs silently
            $toAddresses = @()
            foreach ($recip in $item.Recipients) {
                if ($recip.Type -eq 1) { 
                    try {
                        $addr = $recip.PropertyAccessor.GetProperty($SMTP_TAG)
                        if ([string]::IsNullOrWhiteSpace($addr)) { $addr = $recip.Address }
                        $toAddresses += $addr
                    } catch {
                        $toAddresses += $recip.Address
                    }
                }
            }
    
            [PSCustomObject]@{
                "Date Received" = $item.ReceivedTime.ToString("MM/dd/yyyy")
                "From"          = $fromAddress
                "To"            = $toAddresses -join "; "
                "Subject"       = $item.Subject
            }
        }
    }
    
    $emails | Export-Csv -Path "$env:USERPROFILE\Desktop\clean_emails.csv" -NoTypeInformation -Encoding utf8
    Write-Host "Export complete! No errors this time." -ForegroundColor Green
    

    My result:

    User's image Hope my answer will help you.


    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    Was this answer helpful?

    1 person found this answer helpful.

2 additional answers

Sort by: Most helpful
  1. Vasil Michev 126.5K Reputation points MVP Volunteer Moderator
    2026-04-15T05:32:25.5633333+00:00

    Probably the easiest way to do this is to adjust the view settings and columns per your preferences (i.e. add the From column if it's missing). Then, CTRL+A to select all messages, CTRL+C to copy the metadata, CTRL+V within Excel to export as table. The downside is that you need to repeat the process for each folder.

    Was this answer helpful?

    0 comments No comments

  2. Q&A Assist
    2026-04-15T01:38:37.8633333+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    In classic Outlook for Windows, export email metadata (including received date, from, to, subject) to CSV by exporting to a CSV or PST and then shaping the data as needed.

    To get a CSV with the columns "Date Received", "From", "To", and "Subject" for all messages, use this approach:

    1. In classic Outlook, export mail to a PST file:
      • Go to File > Open & Export > Export to a file.
      • Choose Outlook Data File (.pst).
      • Select the mailbox or folder(s) that contain the emails to export.
      • Complete the wizard to create the .pst file.
    2. Import the PST into a profile or Outlook instance where it can be filtered and exported:
      • If needed, use File > Open & Export > Open Outlook Data File to attach the PST.
    3. Export the email list to CSV (or Excel) from Outlook:
      • In classic Outlook, use the export options documented under Export email, contacts, and calendar to a PST file and Export contacts from Outlook to a CSV file or Excel. Outlook’s built-in CSV export is focused on contacts, so to get email rows, first ensure the emails are in a folder that can be exported or listed.
      • If Outlook’s export wizard does not directly expose email rows to CSV, use a view in Outlook that shows the columns Received, From, To, and Subject, then copy/paste that view into Excel and save as CSV:
        • In the mail folder, customize the view to include Received, From, To, and Subject.
        • Select all items (Ctrl+A), copy, and paste into Excel.
        • In Excel, ensure the columns are exactly: Date Received, From, To, Subject and that the date format matches MM/DD/YYYY (or your required format).
        • Save as CSV (Comma delimited) (*.csv) via File > Save As.
    4. Ensure the CSV structure matches the required table:
      • The header row should be:
        • Date Received,From,To,Subject
      • Each subsequent row should contain the email’s received date, sender address, recipient address, and subject.

    If only contacts need to be exported, use the direct CSV export for contacts and then save from Excel as CSV as described in the CSV guidance.


    References:

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.