Apple Mail · Outlook · Thunderbird · eM Client · Spark · Mailspring · MailMate · Postbox
Most of a switch is not a migration. If your account is Exchange, Microsoft 365 or IMAP, the mail is on the server, and adding the account to MailCode brings all of it down — there is nothing to export. Importing matters only for the mail that exists only on your disk: a POP account, an On My Mac mailbox, a Local Folder, an old PST. This page separates the two, client by client, and says plainly where MailCode cannot read a format.
Open your current client and look at where a mailbox sits in its sidebar.
Do the account first and the export second. Once the server mail is syncing you can take your time with the local part, and you will usually find that half of what you were about to export is already there.
| Format | Read | Usually comes from |
|---|---|---|
.pst / .ost | Yes, directly | Outlook for Windows |
.eml | Yes, single files or whole trees | Almost every client, by drag or export |
.msg | Yes | Outlook, saved one message at a time |
| maildir | Yes, including cur and new | Unix servers, some power clients |
| mbox | Yes, each mailbox as a folder | Apple Mail export, Thunderbird, Postbox |
.emlx | Yes, from Apple Mail's library folder | Apple Mail's own storage |
winmail.dat | Yes, opened from the message it arrived on | Outlook, when it sends Rich Text mail |
.olm | No | Outlook for Mac |
All of these come in through the same command, File → Index EML Files…: point it at a file or a folder and it finds the mail inside, subfolders included. The one format it does not read is .olm. For that, select the messages in Outlook for Mac and drag them to a folder in Finder, which writes one .eml per message, then point MailCode at the folder.
Apple Mail keeps its mail as .emlx files inside ~/Library/Mail, and exports a mailbox as an .mbox. MailCode reads both.
To skip the export, point the same command at ~/Library/Mail and MailCode reads the .emlx files directly. One limit: when Apple Mail has stored a message's attachments separately (a .partial.emlx), the message and its text come across without those attachments.
This is the easiest of all of them, because Outlook's own file format is the one MailCode reads directly — there is a longer walk-through at how to open a PST file on a Mac.
Documents\Outlook Files\. Point MailCode's PST import at the file. Nothing has to be exported first, and Outlook does not need to be installed.%LOCALAPPDATA%\Microsoft\Outlook\ — is the same on-disk format, and the importer reads it as it stands. Copy it somewhere else first; Outlook holds a lock on the live one.The file's own folder tree comes across as it stands — Inbox, Sent Items, the subfolders you made in 2014 — into whichever destination folder you pick. Attached messages, and bodies that exist only as HTML or RTF, come with it.
Outlook for Mac exports .olm, not .pst, and MailCode does not read .olm. There are two ways around it:
.eml files, and MailCode imports the folder.Thunderbird stores each folder as one mbox file, and MailCode reads those directly. Quit Thunderbird, then choose File → Index EML Files… in MailCode and pick the profile's Mail/Local Folders folder (Thunderbird's Help → Troubleshooting Information → Profile Folder shows where it is). Each Thunderbird folder becomes a folder in the archive, subfolders included, rather than everything landing in one heap.
eM Client exports .eml natively: File → Export → Export mail to .eml files. Choose a folder, then import that folder in MailCode. Folder structure is preserved on both sides.
These keep no archive of their own that outlives the account — they are windows onto an IMAP or Exchange mailbox, with a local cache underneath. There is nothing to export. Add the account in MailCode and the mail arrives.
The thing to check before you delete the old client is whether it was doing anything to the server your new one has to keep doing: a Spark shared inbox, or a send-later queue that has not fired yet.
MailMate is IMAP-backed, so the account route applies. For anything held locally, dragging a selection to Finder gives .eml files, and MailMate's own Export Messages… can write the same. Its mbox output is read too.
Postbox keeps its mail in mbox files the way Thunderbird does, so the Thunderbird route applies: quit Postbox, then point File → Index EML Files… at its profile's mail folder.
When you import, MailCode asks one question worth understanding, because it is hard to change your mind about later:
One folder holds one kind or the other, never both. Re-running an import over the same folder is safe — files already in the archive are skipped, so a second pass adds what is new instead of duplicating what is there.
Everything below follows from one decision: the mail lives on your disk, in a full-text index, as it arrives.
Worth knowing before you move, not after.
.olm is not read directly. Outlook for Mac mail comes across by dragging it to Finder first, as above..eml, keeping its folder structure.Step six is not a formality. It costs nothing and it is the only honest way to know the move worked.
macOS 12 or later. Free 14-day trial, then a one-time purchase. If a format on this page is blocking you, say so — the import list grows from what people are actually holding.