Posted by techstuff123 3 days ago
This is the way projects used to be, and surprisingly excellent ones still are.
The amount of knowledge built into this is incredible:
https://imapsync.lamiral.info/S/news.shtml
// imapsync did 14M to 21M mailboxes transfers per month in 2024, or 0.22% of ALL email traffic
I see that there's a free (for up to 3GB, pay for more) migration service offered there now, too: https://imapsync.lamiral.info/X/
That's a pretty cool way to support the project.
[1] https://isync.sourceforge.net/
[2] https://imapsync.lamiral.info/FAQ.d/FAQ.Two_Ways_Sync.txt"Credentials encrypted in memory only and deleted immediately after migration".
I have no way to audit/verify this claim. You're essentially asking users to hand over the keys to their entire email history on faith.
I was at the beginning of my career. It was pretty easy. Went almost flawlessly, moving thousands of peoples email.
Where is the "painful" part? It's just moving blobs of text around.
Turns out Proton is super picky about RFC compliance and will reject anything that doesn't met the criteria, which sucks because GMail does exactly the opposite and will take almost anything you throw at it.
So I have so far written about 7 different regexes to fix some specific mailer issues to make them RFC compliant, with plenty more to go. And even then it still somewhat sucks because I am, effectively, modifying the emails to a state they were not received/sent in.
Email only has two really mandatory headers: Date and From. There were emails without a Date header, you can't make that shit up. Naturally MUAs also can't deal with this, e.g. Thunderbird shows the timestamp of the first sync.
I also can't imagine there is much demand for IMAP only email migration services these days.
That said, I was saved/pleased by Eudora2Unix [0], one of those projects that represents a very long slow burn of successive people with a similar niche struggle. You might think Thunderbird would have an import tool for that, but it's been so many years it didn't survive...
One of the reasons I kept looking for other approaches is due to how Eudora handles attachments. In this case, many of them had been "detached" from the message they came from. In other words, the message bodies no longer contained the data, but instead a placeholder pointing to a real file in a massive Attachments folder. (Not sure exactly how it handled name collisions.) Uploading such a message to IMAP would leave the attachment(s) behind.
The linked version of Eudora2Unix (unlike the Sourceforge version) tries to reverse this process and reconstruct the original messages, encoding and inserting attachments back into the body. It doesn't always work, but I suspect some of the failures I see are because the file content was deleted over the years by the user to free up disk space, without removing the e-mail trace.
Another plus is that I could just grab all the files for the user and then promise to come back with something better, as opposed to babysitting the upload/download process.
Specialised conversion/migration software is probably the better route to go, especially now that the Eudora source code was donated to the Computer History Museum. I'll give Eudora2Unix a shot though!
You mentioned attachment name clashes: Eudora simply appends an incrementing integer to the incoming attachment's filename, for example, it would retain file.jpg for the first email and use file1.jpg in the next email it encounters.
Note that its "pine" output format is... almost what Thunderbird wants, except for nested mailbox effects. That'll require renaming directories from foo to foo.sbd and sometimes adding a corresponding blank foo file.
Then there's all the people who want to exit Big Tech or US-based companies right now.
Geeman, the founding CEO would have definitely sent a C&D immediately, but BitTitan was acquired by a PE firm and I don't find it hard to imagine nobody cares anymore. [0][1][2]
[0] https://www.reddit.com/r/msp/comments/1mnelca/migrationwiz_w...
[1] https://www.reddit.com/r/msp/comments/1qnwkwl/do_not_use_bit...
[2] https://www.reddit.com/r/sysadmin/comments/1qswdub/bittitan_...
and being the cynical sort of person that I am, I didn't trust the fastmail importer
so I ran it, and also wrote my own implementation using the gmail api (NOT imap), and another using the fastmail jmap api, and reconciled them
100% match (bar the "Muted" folder, which fastmail ignored)
pretty much perfect
Note that I used the proper IMAP terms. A mailbox is what the layman probably calls a folder or directory, a namespace is what the laymen probably would call a mailbox or account.
last month I moved 20 years of email
I started offlineimap before I went to bed and it finished before I woke up
I do it regularly for backups and updates. For an update I basically spin up a new server and then sync it. I do not want to wait that long, to see whether an update contained a bug or not.
It supports large mailboxes, preserves full data integrity, requires no setup, and works with any IMAP-compatible email service.