Skip to content
SPECIFICTION
Get listed

imap-migrate

github.com

Free plan WindowsmacOSLinux
Visit github.com
Spec score 7.8 #9 of 24 in Email Migration Software

What it is

imap-migrate is a free, open-source command-line tool for transferring the contents of one email folder between IMAP hosts. It can work with providers that support IMAP, including Gmail, Outlook, Fastmail, Yahoo and custom servers. The tool preserves original received dates and flags such as Seen and Flagged, and shows progress, transfer speed, success and error counts, plus estimated time remaining. It records actions in migration.log. Its README says interrupted migrations can be rerun without duplicating emails; the --dry-run option checks connection and settings without moving messages. Credentials can be supplied as command-line arguments or environment variables, with environment variables recommended by the README as the more secure option. Both accounts need IMAP access enabled, and the tool requires Python 3.12 or higher; uv is recommended for dependency management. It runs on Linux, macOS and Windows and is licensed under MIT. It does not rebuild a full folder structure or migrate provider-specific features such as Gmail labels or categories. Bug reports and contributions are invited through GitHub issues and pull requests.

Spec sheet

Purpose
imap-migrate is an open-source command-line tool for moving email from one IMAP host to another.Read 4 Oct 2026 · github.com
Platforms
Installation instructions show macOS and Linux, Windows, and pip as installation options.Read 4 Oct 2026 · github.com
Security
The README recommends environment variables for credentials as a more secure option; it does not state security certifications or compliance claims.Read 4 Oct 2026 · github.com
Support
The project invites users to report bugs by opening a GitHub issue and welcomes contributions through pull requests.Read 4 Oct 2026 · github.com
License
The project is licensed under the MIT License.Read 4 Oct 2026 · github.com
Credentials
Credentials can be supplied as command-line arguments or environment variables.Read 4 Oct 2026 · github.com
Dry run
The --dry-run option tests the connection and settings without migrating emails.Read 4 Oct 2026 · github.com
Limitations
It migrates the contents of one folder to another and does not recreate the full folder structure or migrate provider-specific features such as Gmail labels or categories.Read 4 Oct 2026 · github.com
Maintainer
The GitHub profile identifies cpluss as Sebastian Lund and lists London as the location.Read 4 Oct 2026 · github.com
Metadata
It preserves original email received dates and flags such as Seen and Flagged.Read 4 Oct 2026 · github.com
Progress and logs
It displays migration progress, speed, success and error counts, and estimated time remaining, and logs actions to migration.log.Read 4 Oct 2026 · github.com
Provider support
It supports migration between providers with IMAP access, with Gmail, Outlook, Fastmail, Yahoo, and custom servers listed as examples.Read 4 Oct 2026 · github.com
Requirements
The tool requires Python 3.12 or higher and IMAP access enabled on both email accounts; uv is recommended for dependency management.Read 4 Oct 2026 · github.com
Reruns
The README says interrupted migrations can be rerun without creating duplicate emails.Read 4 Oct 2026 · github.com

Plans and prices

Free Free IMAP folder migration · Python 3.12 or higher · IMAP access required on both accounts Read 4 Oct 2026 · github.com

Every imap-migrate plan and price →

Strong points and limits

Strong points

  • Preserves original received dates and message flags
  • Shows progress, speed, counts and estimated time remaining
  • Supports reruns after interruptions without duplicate emails
  • Dry run checks settings without moving messages
  • Runs on Linux, macOS and Windows

Limits

  • Requires Python 3.12 or higher
  • IMAP access must be enabled on both accounts
  • Moves one folder's contents, not the full folder structure
  • Does not migrate provider-specific features such as Gmail labels

Who it suits

imap-migrate suits people who need to move one IMAP folder between accounts and are comfortable using a command-line tool. It is not suited to migrations that must recreate full folder structures or provider-specific features.

Verdict

imap-migrate provides useful progress reporting and metadata preservation for a focused IMAP folder transfer. Its one-folder scope and Python requirement are important constraints to check before a migration.

Where Specifiction places it

Alternatives to imap-migrateAll alternatives →