Compare

Mailbox Taxi vs imapsync: GUI vs CLI Migration Compared

Mailbox Taxi vs imapsync compared on usability, scripting, OAuth2 support, throttle handling and cost — pick the right migration tool for your team.

AK

Alex Kerr

Lead Migration Engineer, Mailbox Taxi

· 11 min read
Terminal showing code on a dark screen

imapsync is the open-source workhorse of IMAP migrations. It's a single Perl script that has been keeping engineers out of trouble since the early 2000s, and it can talk to almost any IMAP server you point it at. The trade-off is that it's a CLI tool with a hundred-plus flags, and someone on the team needs to be comfortable with Perl when things break. Mailbox Taxi is the other shape of the same idea — a desktop app that wraps the same protocol-level work in a GUI with bulk imports, OAuth flows, and visible per-folder progress. This comparison helps you pick the right one for your team and your job.

Skip the manual setup — let Mailbox Taxi handle it

One desktop app, every IMAP provider, zero data leaving your machine.

TL;DR

Short version

imapsync is the right tool when you have at least one engineer who lives in the terminal, you want everything in shell scripts, and you're happy to absorb the cost of debugging a Perl CLI when it misbehaves. Mailbox Taxi is the right tool when you want the same protocol-level capability with a GUI, in-product OAuth, bulk CSV imports, and a workflow you can hand to a junior engineer without a Perl tutorial.

What each tool actually is

imapsync is a Perl program that copies messages from one IMAP server to another. It was written by Gilles Lamiral and has been maintained for two decades. It supports XOAUTH2, custom SSL/TLS options, message-level filtering, dry runs, sync mode (delete from destination what was deleted on source), and an enormous matrix of compatibility quirks for legacy servers. It is invoked from the command line with flags like --host1 imap.gmail.com --user1 alice@example.com --host2 outlook.office365.com --user2 alice@new.example.com.

Mailbox Taxi is a desktop application for Windows, macOS and Linux. Under the hood it solves the same problem — read messages from source IMAP, write them to destination IMAP, preserve folders, flags and dates — but the interface is a GUI with a wizard, a bulk CSV import for many mailboxes, OAuth consent flows that handle Gmail and Microsoft 365 token refresh in-product, and per-folder progress bars. There is no CLI; that is by design.

The deeper protocol-level context lives in the IMAP migration guide and the IMAP protocol glossary for the vocabulary.

Feature comparison

Where imapsync wins

This is a tool with a serious following for a reason.

It is the most flexible IMAP mover that exists. If you have a weird legacy server — a Courier IMAP from 2008, a UW-IMAP installation a customer somehow still runs, an unusual cipher configuration — imapsync's flag matrix probably has a switch for it. The maintainer has spent twenty years adding compatibility shims. Mailbox Taxi targets modern providers and clean IMAP; it can talk to legacy servers but with less of a long tail.

It scripts perfectly. Drop it into Ansible, run it from cron, embed it in a Bash function. Every flag is in version control, every run is reproducible, every output line is greppable. For a sysadmin culture that already runs everything from git, imapsync feels right. Mailbox Taxi is GUI-first; you cannot put it in a pipeline.

Per-message filtering. imapsync can filter messages by date, header, size, folder pattern — anything. Migrate only the last two years, exclude folders starting with [Gmail]/Trash, copy only unread. Mailbox Taxi has filtering but with a smaller surface area exposed through the GUI.

Free under the right conditions. If you compile imapsync from source and your use is personal or non-commercial, it costs nothing. The maintainer sells a paid licence and prebuilt binary for organisational use, which is the fair model — but the entry price is genuinely zero. Mailbox Taxi has not announced pricing yet.

Twenty years of corner-case discovery. Every weird flag in imapsync exists because someone hit a real edge case. That history is encoded in the tool. Mailbox Taxi is newer; it will be a few years before it has accumulated the same back-catalogue of niche compatibility.

For more on the free end of the market, the free email migration tools roundup covers imapsync alongside other no-cost options.

Where Mailbox Taxi wins

A GUI a junior can use. Hand imapsync to someone who's never opened a terminal and you'll be answering questions for an hour. Hand them Mailbox Taxi and they'll have a pilot mailbox running in ten minutes. For MSPs and IT teams without a dedicated migration engineer, that delta matters. Training time falls; mistakes fall with it.

OAuth2 done in-product. XOAUTH2 with imapsync means registering an app in Google Cloud Console or Azure, generating tokens externally, and passing them via --oauthaccesstoken1 flags. If the token expires mid-job (and on a 20-hour migration, it will), the job dies. Mailbox Taxi runs the consent flow inside the app, stores the refresh token securely, and silently refreshes — so a long job survives the token lifetime.

Bulk CSV import as a first-class feature. imapsync can run in batch via a wrapper script that calls it once per mailbox. That works, but you're writing and maintaining the wrapper. Mailbox Taxi takes a CSV of source/destination pairs natively, schedules them with the concurrency you set, and reports per-mailbox status in one pane. For a 60-mailbox cutover, that's hours of engineering time you don't spend.

Visible progress. Watching imapsync is watching log lines scroll. Mailbox Taxi shows a per-folder progress bar with messages transferred, messages remaining, and ETA. When the client asks "how far through are we," you have an answer that doesn't require explaining what bytes_transferred=... means.

Modern providers, properly. Mailbox Taxi has curated provider profiles for Gmail, Microsoft 365, Zoho, Fastmail, iCloud, ProtonMail Bridge and others. Each profile knows the right hostnames, the right OAuth scopes, the right concurrency ceilings to avoid Too many simultaneous connections. imapsync needs the same information typed in at the command line every time.

Cross-platform without the Perl story. imapsync runs on Linux, macOS, and Windows, but the Windows experience involves either Strawberry Perl or the maintainer's prebuilt binary. Mailbox Taxi ships native installers for all three platforms with no Perl in the picture.

The IMAP migration tools shortlist covers both ends of this spectrum if you're still considering more options.

Pick by who's running it

The deciding question is rarely about features. It's about who runs the tool day to day. If it's one terminal-loving engineer, imapsync is unbeatable. If it's a rotating team where the junior engineer needs to handle a Monday-morning migration solo, you want the GUI.

Pricing reality check

imapsync's pricing is genuinely interesting. The source code is free under the NOLIMIT licence for personal, educational and non-commercial use. The maintainer sells a paid licence and a precompiled binary, which is the right way to use it commercially. For an MSP doing client work, the paid licence is honest and reasonably priced — there's no per-mailbox or per-seat upsell.

Mailbox Taxi has not announced pricing. It is in waitlist phase. Sign up to get early access and pricing terms when they're set. The architectural positioning suggests per-mailbox or per-seat economics priced for IT teams and MSPs.

For commercial use specifically, also factor in the cost of an engineer's time spent debugging the tool. imapsync's sticker price is low; its support burden depends entirely on whether your team includes someone fluent in Perl.

Decision framework

Pick imapsync when:

  • You have at least one engineer who is comfortable with Perl and the command line.
  • You want migrations in shell scripts, Ansible, or CI.
  • You need filtering or transformations that are hard to express in a GUI.
  • You're talking to weird legacy IMAP servers from the 2000s.
  • Cost matters more than support burden.

Pick Mailbox Taxi when:

  • The job will be run by IT generalists, not migration specialists.
  • You want OAuth2 handled in-product, with token refresh across long jobs.
  • You're moving more than a handful of mailboxes and want bulk CSV import as a first-class feature.
  • You want a visible, demoable progress UI you can show clients.
  • Source and destination are modern providers (Gmail, Microsoft 365, Zoho, Fastmail, etc.).
  • You don't want a Perl toolchain in your support matrix.

For the heavier MSP-orchestrator alternative, see Mailbox Taxi vs BitTitan.

Common errors and how each handles them

A few real ones from production runs:

  • AUTHENTICATIONFAILED on Gmail. imapsync surfaces the raw response and expects you to know that Gmail needs OAuth or an app password. Mailbox Taxi detects the failure mode and prompts you through the right auth path.
  • Too many simultaneous connections. imapsync respects --maxsleep and --maxage flags if you set them; if you didn't, it'll keep retrying and may lock the source account. Mailbox Taxi backs off automatically with a visible warning in the UI.
  • OAuth2 token expired on a long-running job. imapsync dies unless you've wrapped it in a token-refresher script. Mailbox Taxi refreshes silently and continues from the last UID.
  • Folder UTF-7 conversion error. imapsync has flags to rewrite folder names — --regextrans2 is the classic. Mailbox Taxi auto-detects and rewrites without configuration.
  • STARTTLS handshake failed. imapsync gives you cipher and protocol flags to negotiate around it. Mailbox Taxi exposes a smaller set of TLS controls through the UI; for the very unusual cases imapsync is more flexible here.

Don't underestimate the wrapper cost

Teams that adopt imapsync usually end up writing a wrapper layer — CSV reader, retry logic, log parser, status dashboard. That wrapper becomes a project of its own. Mailbox Taxi ships those pieces in the box. Budget for the wrapper if you're going the imapsync route.

A worked example

Scenario: 80-mailbox migration from a self-hosted Dovecot to Microsoft 365 over a weekend.

With imapsync, the engineer writes a Bash script that reads a CSV, calls imapsync per mailbox, retries on failure, and logs to a directory. Token refresh for the 365 side needs a side process. Cutover runs unattended over Saturday night; Sunday morning the engineer eyeballs the logs to confirm.

With Mailbox Taxi, the engineer imports the same CSV through the GUI, sets concurrency to 6, and starts the run. The app handles 365 OAuth refresh in-product, reports per-mailbox progress, and writes the same logs in a structured format. Sunday morning the engineer exports a status report and hands it to the client.

Either approach works. The difference is whether the wrapper script is in your repo or in the vendor's binary.

What to test on your pilot

Run a single mailbox through both tools and compare:

  1. Time to first message transferred.
  2. Total time to complete a 5GB mailbox.
  3. Behaviour when you kill the network mid-transfer.
  4. Folder hierarchy and read/unread fidelity.
  5. How clearly the tool tells you what failed and why.
  6. How long it takes to onboard a teammate to running the tool solo.

That last one is the tiebreaker for most teams.

FAQ

Try Mailbox Taxi

Migrate your mailbox the easy way

Join the waitlist for early access and lock in launch pricing.

Related reading

Try Mailbox Taxi

Migrate your mailbox the easy way

Join the waitlist for early access and lock in launch pricing.