Open Source · GPLv3 · Windows · Linux · macOS

Email migration
without the
complexity

MailFerry puts a clean, intuitive interface around powerful IMAP synchronisation technology. Move mailboxes between any mail servers — including Microsoft 365 and Google Workspace — with full OAuth2 support, batch processing, and complete control over the migration.

MailFerry — Email Migration Made Simple

The right tool for any email move

Whether you're migrating a single inbox or rolling out a company-wide platform transition, MailFerry handles the job with minimal setup and maximum visibility.

🏢
Office 365 → Google Workspace

Migrate an entire organisation's email history during a platform switch. Run overnight in batch mode — MailFerry handles token refresh, folder mapping, and keeps going if connectivity hiccups.

👤
Single Mailbox Moves

Onboarding a new staff member or moving an individual to a new provider? Enter source and destination, click Sync — done. No scripting, no command-line tools required.

🔄
Ongoing Synchronisation

Keep two mailboxes in sync during a parallel-run transition period. Re-run syncs at any time — MailFerry skips messages that have already been transferred.

🏗️
Server Consolidation

Merging hosted mail servers after an acquisition? Batch mode lets you queue every affected account, save the job list, and run the full migration in a single supervised pass.

📁
Selective Archiving

Need to migrate only certain folders, or messages within a specific date range? Advanced options give you granular control — migrate exactly what you need, nothing more.

🧪
Safe Staged Migration

Use Dry Run to preview the full transfer before committing, or route mail into a staging subfolder first. Validate the results, then run the final production migration with confidence.

MailFerry main window showing source and destination panels with live output
MailFerry — main interface with live migration output

Everything you need, nothing you don't

Source and destination accounts sit side by side. Enter credentials, authenticate with OAuth2 via a standard browser flow, verify connectivity with a single click, then run.

The live output panel keeps you informed throughout — and Cancel terminates cleanly at any time. No configuration files, no command-line arguments, no manual token management.

Everything you need for professional email migration

🔐
Modern OAuth2 Authentication

Authenticate with Microsoft 365 and Google Workspace through standard browser-based flows. No app passwords, no legacy protocols — tokens refresh automatically.

📦
Batch Processing

Queue dozens of account pairs, save the list, and run the entire batch overnight. Reload saved jobs for incremental re-runs or staged migrations.

🧪
Dry Run Mode

Preview every transfer before committing. See exactly which folders and messages will be affected without moving a single byte of data.

⚙️
Advanced Controls

Filter by folder, date range, or message size. Handle Exchange quirks, deduplicate, throttle bandwidth, and cache transfer state for resilient long migrations.

🖥️
Cross-Platform

Runs on Windows, Linux, and macOS. The Windows release is a self-contained binary — no installation, no Python, just unzip and run.

📡
Live Progress & Logging

Migration output streams directly to the window in real time. Full logs available for review, troubleshooting, or compliance records.

MailFerry Advanced Options dialog showing fine-grained migration controls
Advanced Options — granular control for complex migrations

When the migration requires a finer touch

The Advanced Options panel surfaces deep sync controls — organised into logical groups rather than an intimidating wall of settings. Fine-tune folder filtering, message selection, duplicate handling, bandwidth throttling, and Exchange compatibility without leaving the GUI.

Settings travel with each account profile in your batch list, so complex per-account configurations are saved and reused automatically.

Up and running in minutes

Standard migration (password auth)

  1. Enter your source account server details and credentials on the left panel.

  2. Enter your destination account details on the right panel.

  3. Use Check Login to verify connectivity to both servers before starting.

  4. Click Test Run to preview the transfer — review what will be moved.

  5. Click Sync to begin. Watch the live output and click Cancel at any time.

Microsoft 365 or Google Workspace (OAuth2)

  1. Enter the account email address in the relevant panel.

  2. Click Get 365 Token or Get Gmail Token — a browser window opens for secure authentication.

  3. Once authorised, the server details fill in automatically and the button confirms the connection.

  4. Proceed with Test Run or Sync as normal. Token refresh is handled automatically during long migrations.

Migrating multiple accounts

  1. Configure the first account pair and any required advanced settings.

  2. Click Add to Batch — the pair is queued and the fields clear for the next entry.

  3. Repeat for all accounts, then click Save Batch to preserve the list for later.

  4. Click Sync All to run every account in sequence, or select individual accounts to run on demand.

Free to download and use

MailFerry is licensed under the GPL v3 and comes with two CLI helper programs imapsync and oauth2_imap. It began life as a GUI extension for the redoubtable imapsync by Gilles Lamiral to make batch processing and oauth2 authentication easier and can still be used as such. It ships with python imapsync and oauth2_imap ports to make redistribution easier but if you already have the original imapsync running on your system you can use it by renaming my imapsync to imapsync.py and copying Gilles's imapsync into the MailFerry directory. The main difference is that if --subfolder1 and --subfolder2 are given the same folder name my version will copy just that folder and the original rejects this operation as unsafe. Also my version generates a more verbose --emailreport. Other than that every effort is made to keep the two versions compatible.

Windows — Quick Start

  1. Download and extract MailFerry.zip to a folder of your choice.

  2. Double-click mailferry.exe — no further setup needed.

Linux / macOS — From Source

tar -xzf MailFerry.tar.gz
cd MailFerry
pip install wxpython dnspython requests
python mailferry.py
Debian & Derivatives: apt install python3-wxgtk4.0 python3-dnspython python3-requests

Licence

Copyright © 2026 Steven Vertigan.
MailFerry is free software distributed under the GNU General Public Licence v3.0.

Provided without warranty of any kind. See the licence for full terms.

GPLv3 Python wxPython OAuth2 Microsoft 365 Google Workspace IMAP