- Home
- Email Migration Software
- imap-migrate
imap-migrate
What it is
imap-migrate is a free, open-source command-line tool for transferring email between IMAP hosts. It supports accounts with IMAP access, including Gmail, Outlook, Fastmail, Yahoo, and custom servers. During a migration, it retains received dates and flags such as Seen and Flagged, and reports progress, speed, success and error counts, and estimated time remaining. Actions are recorded in migration.log. The README says an interrupted run can be repeated without duplicating emails, and the --dry-run option checks connection and settings without moving messages. Credentials may be supplied as command-line arguments or environment variables; the README recommends environment variables as the more secure option. The tool runs on Linux, macOS, and Windows and requires Python 3.12 or higher, plus IMAP access on both accounts. Its scope is one folder to another: it does not rebuild the full folder structure or transfer provider-specific features such as Gmail labels or categories. The project uses the MIT License.
For and against
For
- Free and open source under the MIT License
- Preserves received dates and message flags
- Shows progress, speed, counts, and time remaining
- Dry run checks connection and settings
- Can rerun interrupted migrations without duplicate emails
Against
- Requires Python 3.12 or higher
- IMAP access must be enabled on both accounts
- Moves one folder at a time
- Does not recreate folder structures or provider-specific features
The verdict
imap-migrate provides useful migration status and preserves key message metadata. Its one-folder scope means it is not a full account-structure migration tool.
Who it suits
It suits people who need to move email between IMAP accounts and are comfortable using a command line. Both accounts must have IMAP access, and the computer needs Python 3.12 or higher.
Plans and prices
Free
IMAP folder migration · Python 3.12 or higher · IMAP access required on both accounts
Read 4 Oct 2026 · github.com
On the record
- Credentials
- Credentials can be supplied as command-line arguments or environment variables.github.com · read 4 Oct 2026
- Dry run
- The --dry-run option tests the connection and settings without migrating emails.github.com · read 4 Oct 2026
- License
- The project is licensed under the MIT License.github.com · read 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.github.com · read 4 Oct 2026
- Maintainer
- The GitHub profile identifies cpluss as Sebastian Lund and lists London as the location.github.com · read 4 Oct 2026
- Metadata
- It preserves original email received dates and flags such as Seen and Flagged.github.com · read 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.github.com · read 4 Oct 2026
- Provider support
- It supports migration between providers with IMAP access, with Gmail, Outlook, Fastmail, Yahoo, and custom servers listed as examples.github.com · read 4 Oct 2026
- Purpose
- imap-migrate is an open-source command-line tool for moving email from one IMAP host to another.github.com · read 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.github.com · read 4 Oct 2026
- Reruns
- The README says interrupted migrations can be rerun without creating duplicate emails.github.com · read 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.github.com · read 4 Oct 2026
- Support
- The project invites users to report bugs by opening a GitHub issue and welcomes contributions through pull requests.github.com · read 4 Oct 2026