imap-migrate
github.com
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
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
- Email Migration Software#9 of 247.8