Shubham Dixit, email data and file conversion expert

Written by Jennifer Walsh. Reviewed for technical accuracy by Shubham Dixit, Independent Expert in Email Forensics and Data File Conversion. Updated 18 September 2026.

Shubham is an independent external reviewer and not an employee of PCDOTS.

Quick answer. A MSG file is Outlook’s binary email format, and a CSV is a plain text spreadsheet. To convert MSG to CSV, a short Python script reads each message and writes one row per email, with columns like Subject, From, To and Date. A desktop converter does the same in bulk with no code. Outlook’s own CSV export only covers contacts, not messages.

What is a MSG file, and what is a CSV?

A MSG file is a single Outlook email saved on its own. It’s a binary file, built on the Microsoft OLE compound-file format, and its fields sit in MAPI property streams, so you can’t open it in a text editor and read them.

A CSV file is the opposite. It’s plain text, with values split by commas, one row per record. Excel, Google Sheets, LibreOffice Calc, a database or a script can all read a CSV, which is why people export emails as CSV for reporting, data analysis or importing into a CRM.

So converting MSG to CSV means turning each email into one row, with the fields you want, Subject, From, To and Date, as the columns. The MSG format was created by Microsoft and stores one email per file, so a folder of 500 MSG files becomes 500 rows in a single CSV.

D0 CF 11 E0.msg, binary parserreads the fields Subject,From,DateInvoice,ana,Mar 3Re: Trip,sam,Mar 4 CSV, one row per email

A parser turns the binary MSG into plain comma-separated rows.

“People try to open a MSG in a text editor and see gibberish, because MSG is a binary container, not text. The clean way is a parser. The extract-msg library in Python opens the file, hands you the subject, sender and date, and the csv module writes the row. I keep a ten-line script for this and it clears a folder of messages in seconds. One thing that trips people up, Outlook’s own export to CSV is built for contacts, so it will not give you a table of your emails. For that you need a real parser or a converter.” Shubham Dixit, Data File Conversion reviewer (draft, pending approval)

Why can’t Outlook export MSG emails to CSV?

Outlook can’t turn your MSG emails into a CSV table. Its Import/Export wizard does have a Comma Separated Values option, but that path is built for contacts, calendar and tasks, not email messages.

Run a mail folder through it and you won’t get a tidy table of subjects, senders and dates. You’ll get an empty or useless file. That’s the number one reason people search for another way to convert MSG to CSV.

You’ll also see a tip to use Excel’s Insert then Object menu on a .msg. That only embeds the file as an icon in a cell. It doesn’t read the MSG fields into columns either. Both are dead ends for a real MSG to CSV table.

How do you convert MSG to CSV for free?

You convert MSG to CSV for free with a short Python script. Python reads MSG with one small library and writes the CSV itself, so there’s nothing to buy.

The library is extract-msg, and it does the hard part of parsing the binary. Here are the five steps.

  1. Install the library with pip install extract-msg. You can confirm it on the extract-msg page on PyPI.
  2. Point a short script at your folder of .msg files.
  3. For each file, run msg = extract_msg.Message(path) and read msg.subject, msg.sender, msg.to and msg.date.
  4. Write one row per email with Python’s built in csv module, and pick which fields become columns.
  5. Open the CSV in Excel or Google Sheets, or import it straight into a database or a script.

A loop over the folder handles hundreds of MSG files in one run. The csv module also wraps any field that holds a comma in quotes, so a subject like Re: lunch, drinks stays in one cell.

folder of .msgOutlook binary extract-msg + csvread fields, write rows one CSVone row per email open

The extract-msg library parses each MSG and writes the CSV rows.

What columns and settings can the MSG to CSV export use?

You choose the columns in a MSG to CSV export. Common columns are Subject, From, To, Cc, Bcc and Date, plus the message body, the message size and the attachment names.

CSV uses a comma between fields by default. If you open the CSV where Excel expects a semicolon, save it with a semicolon instead. A tab gives you a TSV, and a pipe works too. The delimiter is a setting, not a rewrite.

Save the CSV as UTF-8 so accented names and other languages read correctly. A CSV written in the wrong encoding turns names like Zoë into garbled text, and UTF-8 fixes that for a MSG to CSV export.

How do you convert many MSG files to CSV without code?

You convert many MSG files to CSV without code by using a desktop converter. A converter reads the binary for you and exports the emails to CSV in a window, with no script to write.

The PCDOTS MSG Converter reads a folder of MSG files on its own, so Outlook does not need to be installed. It reads the fields you choose, Subject, From, To, Date, Cc, Bcc, the message body and attachment names. It can also filter by date, then write everything to one CSV, with attachments handled and duplicates removed. It runs on Windows with a free trial that saves the first 10 items per folder, so you can check the output first. Follow these four steps.

  1. Install and run the PCDOTS MSG Converter, then open the menu.
  2. Add your MSG files or a whole folder.
  3. Open Export and choose CSV, then pick the fields you want as columns.
  4. Pick a destination, save and open the CSV in Excel or Google Sheets.
1Run itOn Windows,open the menu 2Add MSGFiles or awhole folder 3Export CSVPick thefields 4SaveOpen inExcel iReads the .msg on its own, so no Outlook is needed to export CSV.

The tool route, a folder of MSG files into one CSV.

Here are the same four steps with the screens.

Step 1. Install and run the PCDOTS MSG Converter, then open the menu.

Run the MSG to CSV converter

Step 2. Add your MSG files or a whole folder.

Add the MSG files or folder

Step 3. Open Export and choose CSV, then pick the fields.

Choose CSV and the fields to export

Step 4. Pick a destination and save.

Save the CSV output

Want a formatted workbook instead of raw CSV? See our guide to convert a MSG file to Excel. For the same job on EML files, see convert EML files to CSV.

Free Download
Buy Now

one CSVplain text data opens in Excel Google Sheets Calc a database a CRM a script any BI or reporting tool

One CSV of your MSG emails travels into almost any tool.

Which MSG to CSV method should you use?

Use the free Python script if you’re happy with code, and the converter if you want a window. Both give you a CSV, one row per email.

Method Best for Good to know
Python extract-msg Any number of files Free, no Outlook, pick fields
PCDOTS MSG Converter Bulk, no code Windows, attachments handled
Outlook CSV export Not for email messages Contacts only, skip it here

Key takeaways

  • MSG is Outlook’s binary format, so you need a parser to reach the fields.
  • The free Python extract-msg library writes one CSV row per email in a few lines.
  • Outlook’s built in CSV export is for contacts, not email messages.
  • A desktop converter does the same in bulk with no code, and keeps attachments.

Frequently asked questions

How do I convert a MSG file to CSV for free?
Use a short Python script with the extract-msg library. It reads each .msg file’s fields and the csv module writes one row per email, so a folder of emails becomes a CSV at no cost.

Can I convert MSG to CSV without Outlook?
Yes. The extract-msg script reads the binary MSG directly, and a desktop converter is standalone, so neither one needs Outlook installed.

Why doesn’t Outlook’s CSV export give me my emails?
Because Outlook’s Import/Export to CSV is built for contacts, calendar and tasks, not email messages. A mail folder run through it will not produce a table of your emails.

What columns can I get in the CSV?
Any field you choose, commonly Subject, From, To, Date, Cc and Bcc. A script or converter lets you decide which fields become columns.

Can I convert a whole folder of MSG files at once?
Yes. A Python loop reads the whole folder, and a converter loads many files together, so bulk MSG to CSV is straightforward.

What’s the difference between MSG to CSV and MSG to Excel?
A CSV is plain text you can import anywhere. A true .xlsx keeps formatting and sheets. The same tools write either one, so pick CSV for portability and Excel for a formatted workbook.

Which route fits your MSG files?

Converting MSG to CSV is simpler than it looks once you know MSG is binary, not text. The free extract-msg script turns a folder into one CSV in a few lines, and a converter does the same in a window with no code. Skip Outlook’s CSV export, since it only handles contacts. So the real question is this, do you want to run ten lines of Python, or click through a converter to get your CSV?

Shubham Dixit

Reviewed by Shubham Dixit · Author Jennifer Walsh · Updated 18 September 2026

Independent Expert in Email Forensics and Data File Conversion. Shubham reviewed this guide for technical accuracy. He is an independent external reviewer and not an employee of PCDOTS.

Profile  |  LinkedIn