imap-migrate
imap-migrate is a free, open-source command-line tool for moving email between IMAP hosts.
What imap-migrate is
imap-migrate is a free, open-source command-line tool for moving email between IMAP hosts. It works with providers that allow IMAP access, with Gmail, Outlook, Fastmail, Yahoo, and custom servers listed as examples. It preserves original received dates and message flags such as Seen and Flagged. During a run, it shows progress, speed, success and error counts, and estimated time remaining, while recording actions in migration.log. An interrupted migration can be run again without creating duplicate emails, according to the README. The --dry-run option checks connection and settings without transferring messages. Credentials can be provided as command-line arguments or environment variables; the README recommends environment variables as the more secure option. The tool requires Python 3.12 or higher and IMAP access enabled on both accounts, with uv recommended for dependency management. It runs on Linux, macOS, and Windows and is licensed under MIT. Its scope is limited to moving the contents of one folder to another: it does not recreate a complete folder structure or transfer provider-specific features such as Gmail labels or categories. The project invites bug reports through GitHub issues and contributions through pull requests.
Good
- Supports providers with IMAP access
- Preserves received dates and message flags
- Can rerun interrupted migrations without duplicates
- Dry run checks settings without moving email
- Runs on Linux, macOS, and Windows
Watch out
- Requires Python 3.12 or higher
- IMAP access must be enabled on both accounts
- Moves one folder’s contents at a time
- Does not migrate provider-specific features such as labels
Who it suits
imap-migrate suits users comfortable with a command line who need to move email between IMAP accounts. It is a fit for one-folder migrations where preserving message dates and flags matters.
Verdict
imap-migrate provides a focused way to transfer a folder between IMAP accounts while retaining dates and flags. Its Python requirement and lack of full folder-structure or provider-feature migration are important constraints.
Plans and prices
From imap-migrate's own pricing page, checked 4 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free | Free | IMAP folder migration · Python 3.12 or higher · IMAP access required on both accounts |
The facts
Each one read from imap-migrate's own pages, with the date it was checked.
What it does
- Credentials
- Credentials can be supplied as command-line arguments or environment variables.checked 4 Oct 2026
- Dry run
- The --dry-run option tests the connection and settings without migrating emails.checked 4 Oct 2026
- License
- The project is licensed under the MIT License.checked 4 Oct 2026
- 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.checked 4 Oct 2026
- Maintainer
- The GitHub profile identifies cpluss as Sebastian Lund and lists London as the location.checked 4 Oct 2026
- Metadata
- It preserves original email received dates and flags such as Seen and Flagged.checked 4 Oct 2026
- Progress and logs
- It displays migration progress, speed, success and error counts, and estimated time remaining, and logs actions to migration.log.checked 4 Oct 2026
- Provider support
- It supports migration between providers with IMAP access, with Gmail, Outlook, Fastmail, Yahoo, and custom servers listed as examples.checked 4 Oct 2026
- Purpose
- imap-migrate is an open-source command-line tool for moving email from one IMAP host to another.checked 4 Oct 2026
- Requirements
- The tool requires Python 3.12 or higher and IMAP access enabled on both email accounts; uv is recommended for dependency management.checked 4 Oct 2026
- Reruns
- The README says interrupted migrations can be rerun without creating duplicate emails.checked 4 Oct 2026
- Security
- The README recommends environment variables for credentials as a more secure option; it does not state security certifications or compliance claims.checked 4 Oct 2026
- Support
- The project invites users to report bugs by opening a GitHub issue and welcomes contributions through pull requests.checked 4 Oct 2026
Where it runs
- Platforms
- Installation instructions show macOS and Linux, Windows, and pip as installation options.checked 4 Oct 2026
The full review of imap-migrate
Overview
imap-migrate is a free, open-source command-line utility for transferring email between IMAP accounts. It is best suited to people comfortable with Python who need to move a folder without losing message dates and flags. Its narrow scope makes it a practical migration aid, not a complete mailbox-rebuilding solution.
Key features
Messages retain their original received dates and flags such as Seen and Flagged, which helps preserve useful context after a move. Progress reporting shows speed, successful and failed counts, and estimated time remaining; actions are also recorded in migration.log. That makes it easier to monitor a run and investigate errors, though it does not broaden the tool beyond a single folder transfer.
The --dry-run option checks the connection and settings without moving mail. Interrupted migrations can be rerun without creating duplicate emails, a meaningful safeguard when a transfer is disrupted. Credentials work as command-line arguments or environment variables; the project recommends environment variables as the more secure approach, but makes no certification or compliance claims.
IMAP access must be enabled on both accounts, and the tool requires Python 3.12 or later. The recommended dependency manager is uv. These requirements are manageable for command-line users, but add setup work for anyone seeking a ready-to-run desktop app.
Migration covers the contents of one folder into another. It does not rebuild a full folder tree or carry provider-specific features such as Gmail labels and categories, so it is a poor fit for preserving a complex mailbox exactly as organized.
Pricing
The Free plan costs nothing and includes IMAP folder migration, with Python 3.12 or higher and IMAP access on both accounts required. There are no paid tiers or usage quotas to compare, but the free tool's practical limit is its one-folder scope and lack of provider-specific feature migration.
Platforms
imap-migrate supports Linux, macOS, and Windows. It is a command-line tool rather than a graphical email client, so platform support does not remove the need to work with Python and account settings.
Who it's for
Choose imap-migrate for a no-cost, focused transfer between IMAP-accessible accounts when preserving dates and flags matters and command-line setup is acceptable. It is less appropriate for users who need to recreate nested folders, retain Gmail labels or categories, or avoid Python requirements.
Pros and cons
- Pros: Free and open-source under the MIT License, with no paid tier to unlock folder migration.
- Pros: Preserves received dates and flags, and reports progress, errors, and estimated remaining time.
- Pros: Dry runs check settings before transfer, and reruns after interruption avoid duplicate emails.
- Cons: Requires Python 3.12 or higher and IMAP access enabled on both accounts.
- Cons: Transfers one folder's contents rather than rebuilding the mailbox structure or provider-specific features.
- Cons: Credential handling is the user's responsibility; environment variables are recommended, but no security certifications or compliance claims are made.
Alternatives
For a broader email migration software comparison, consider the category guide.
- Zoho Mail is a better fit for users seeking a hosted mail service with a free plan for up to five users, one domain, and 5 GB of storage per user, rather than a focused command-line migration utility.
- MailJerry may suit users who prefer a migration service with unlimited mailboxes and up to three simultaneous migrations on its free plan; that plan caps each mailbox at 150 MB and use to one device.
- SysTools Email Migration Tool is an option for those who want a free demo covering full mailbox migration for up to two user accounts, with a paid version priced at $35, paid once.
- SysTools Migrator offers a free version for two user accounts and a paid license at from $35 (priced on request), with license quota based on accounts migrated.
- imapsync is another IMAP migration option for readers comparing tools in this category.
- CloudM Migrate is an alternative to consider for migrations involving shared drives or public folders, permissions, folder structure, and version history; its listed plan is priced per 10GB by quote.
- Google Workspace is a paid productivity suite rather than a standalone IMAP folder-transfer tool.
- Cigati Email Migrator offers a free demo limited to the first 100 emails per folder; unlimited migration requires its licensed edition.
Verdict
Choose imap-migrate if you need a free, scriptable way to move a folder between IMAP accounts while retaining dates and flags. Its strongest case is the combination of focused transfer safeguards and no cost; look elsewhere if preserving full mailbox structure or provider-specific features is essential, or if Python setup is a barrier.
Getting started
- Open the imap-migrate project on GitHub
- Install Python 3.12 or higher and optionally use uv for dependencies
- Enable IMAP access on both email accounts
- Provide credentials through environment variables or command-line arguments
- Run a --dry-run to test the connection and settings
- Start the folder migration and review migration.log
Limits worth knowing
Each migration handles the contents of one folder to another. It does not recreate a full folder structure or migrate provider-specific features such as Gmail labels or categories.
Questions
How much does imap-migrate cost?
The Free plan costs nothing.
Which operating systems are supported?
It runs on Linux, macOS, and Windows.
What accounts can it migrate between?
It supports providers with IMAP access, including Gmail, Outlook, Fastmail, Yahoo, and custom servers.
Is imap-migrate open source?
Yes. The project is licensed under the MIT License.
What does it require before running?
Python 3.12 or higher is required, and IMAP access must be enabled on both email accounts.
Does it preserve email details?
It preserves original received dates and flags such as Seen and Flagged.
Alternatives to imap-migrate
- 1

Zoho Mail
Free planAndroidiOSWebAPI8.2Free plan - 2
Google Workspace
AndroidiOSWebAPI7.9From $7 a month - 3
MailJerry
Free planAndroidiOSWebmacOS7.3From $129.90 a year - 4

SysTools Email Migration Tool
Free planLinuxWindows6.6$35 one-time - 5

SysTools Migrator
Free planLinuxWindows6.6Free plan - 6

Cigati Email Migrator
Free planmacOSWindows6.5Free plan
