Universal Email Migration Toolkit
Migration Decision Tree
Use this matrix to determine the best migration path:
| Source |
Destination |
Method |
Complexity |
Notes |
| Yahoo Mail |
Gmail |
IMAP → Gmail Import |
Easy |
Use app passwords |
| Yahoo Mail |
Outlook |
IMAP → Outlook Desktop |
Medium |
Manual folder setup |
| Zoho Mail |
Gmail |
IMAP → Gmail Import |
Easy |
Supports IMAP natively |
| Zoho Mail |
Outlook |
Microsoft Migration |
Medium |
Use Zoho IMAP settings |
| ProtonMail |
Gmail |
Export → Import |
Hard |
Limited export options |
| ProtonMail |
Outlook |
Manual forwarding |
Hard |
No bulk export |
| iCloud Mail |
Gmail |
IMAP → Gmail Import |
Easy |
Requires app password |
| iCloud Mail |
Outlook |
IMAP → Outlook |
Medium |
Limited folder support |
| Any IMAP |
Any IMAP |
IMAP bridging |
Medium |
Universal solution |
| Exchange On-prem |
Cloud |
PST export/import |
Hard |
Requires Exchange admin |
Universal IMAP Migration Process
For most provider-to-provider migrations:
Step 1: Source Preparation
- Enable IMAP on source account (if not enabled by default)
- Create app password (Gmail, Yahoo, iCloud require this)
- Test connectivity using the IMAP test script
- Estimate data size using the mailbox size script
- Document folder structure for mapping reference
Step 2: Destination Setup
- Create target account with sufficient storage
- Enable IMAP access (for intermediary tools)
- Configure mail client (Outlook, Thunderbird, or web import)
- Set up folder structure matching source (if needed)
- Test inbound mail to verify account is working
Step 3: Migration Execution
Choose based on destination platform:
To Gmail (any source with IMAP)
- Gmail → Settings → Accounts → Import mail and contacts
- Enter source IMAP details from provider matrix
- Choose import options (last 30 days vs. all mail)
- Start import — Gmail handles the rest automatically
To Outlook/Microsoft 365
- Outlook Desktop → Add Account → IMAP source
- Set up both accounts in same Outlook profile
- Drag and drop folders from source to destination
- Alternative: Use Microsoft's import tools for bulk
IMAP-to-IMAP (Universal)
- Use desktop client (Outlook, Thunderbird, Apple Mail)
- Configure both accounts as IMAP
- Copy folders between accounts via client
- Monitor for errors and retry failed items
Step 4: Validation
- Compare email counts between source and destination
- Test key functionality (send, receive, search)
- Verify contacts and calendar if migrated
- Check folder structure matches expectations
- Validate largest messages and attachments
Email Backup and Export
Before any migration, create backups:
Source-Specific Export Methods
Gmail / Google Workspace
- Method: Google Takeout (takeout.google.com)
- Format: MBOX (Thunderbird compatible)
- Includes: Email, contacts, calendar
- Time: 2-48 hours depending on mailbox size
Outlook / Exchange
- Method: Export to PST file
- Format: PST (Outlook native)
- Process: File → Open & Export → Export to File
- Limitation: Desktop Outlook required
Yahoo Mail
- Method: IMAP download via email client
- Format: Various (depends on client)
- Process: Configure IMAP, sync all folders locally
- Note: No bulk export tool from Yahoo
Zoho Mail
- Method: IMAP export or Zoho's backup tool
- Format: MBOX or EML
- Process: Contact Zoho support for large mailboxes
- Alternative: IMAP sync to local client
iCloud Mail
- Method: IMAP download
- Format: Various (client dependent)
- Process: Configure IMAP with app password
- Limitation: No native export tool
ProtonMail
- Method: Individual email export only
- Format: EML files
- Process: Select emails individually, export
- Note: No bulk export due to encryption
See references/backup-export.md for detailed step-by-step procedures.
Common Migration Challenges
| Challenge |
Solution |
Prevention |
| Authentication failures |
Use app passwords, check 2FA settings |
Test connectivity first |
| Size limitations |
Split into batches, exclude large attachments |
Check provider limits |
| Folder mapping issues |
Document structure, plan manual creation |
Map folders before migration |
| Missing emails |
Check spam/junk, verify date ranges |
Do incremental migration |
| Slow transfer speeds |
Use multiple connections, off-peak hours |
Plan adequate time |
| Character encoding |
Ensure UTF-8 support in tools |
Test with non-ASCII subjects |
Provider-Specific Considerations
Yahoo Mail
- IMAP Limitations: Free accounts have folder limits
- Authentication: Must use app passwords with 2FA
- Best Practice: Migrate during off-peak hours (night/weekend)
Zoho Mail
- IMAP Support: Full IMAP access on all plans
- Bulk Migration: Zoho offers migration services for enterprise
- API Access: Available for custom migration tools
ProtonMail
- Major Limitation: No IMAP access due to encryption
- Workaround: Export to Thunderbird, then migrate from Thunderbird
- Enterprise: ProtonMail Bridge available for paid plans
iCloud Mail
- Storage Limits: 5GB free, consider upgrading temporarily
- IMAP Quirks: Some folders may not sync properly
- Performance: Slow IMAP response, plan extra time
On-Premises Exchange
- Admin Access: Required for PST export/import
- Network: Consider bandwidth limitations
- Legacy Versions: Older Exchange may need PST conversion
Troubleshooting Workflow
When migration fails or stalls:
- Check authentication — Re-enter passwords, regenerate app passwords
- Verify IMAP settings — Double-check server, port, SSL settings
- Test connectivity — Run
scripts/imap-test.py with exact settings
- Check quotas — Verify destination has enough storage space
- Review logs — Look for specific error messages in client logs
- Retry smaller batches — Split large mailboxes into smaller chunks
- Contact support — Provider-specific issues may need support tickets
See references/troubleshooting.md for comprehensive error resolution guide.
Migration Best Practices
Planning Phase
- Inventory thoroughly — Document all email accounts, sizes, special requirements
- Test with pilot users — Never migrate entire organization without testing
- Communicate clearly — Set expectations with users about timeline and downtime
- Plan rollback — Always have a way to revert if migration fails
Execution Phase
- Monitor actively — Don't start migration and walk away
- Validate incrementally — Check each user/batch before proceeding
- Keep logs — Document what worked, what failed, and why
- Stay flexible — Be prepared to switch methods if primary approach fails
Post-Migration
- Validate data integrity — Compare counts, spot-check important emails
- Train users — New interface, different features, updated mobile setup
- Monitor performance — Watch for issues in first 48-72 hours
- Plan cleanup — When to disable old accounts, how long to retain access
1---2name: email-migration-toolkit3description: Universal email migration toolkit for any provider to any provider. Use when migrating between Yahoo, Zoho, ProtonMail, iCloud, on-premises Exchange, or any IMAP-capable email service. Covers decision trees, backup/export procedures, IMAP connectivity testing, troubleshooting, and provider-specific configurations. Essential for IT professionals handling diverse email migrations beyond Google/Microsoft ecosystems.4---56# Universal Email Migration Toolkit78## Migration Decision Tree910Use this matrix to determine the best migration path:1112| Source | Destination | Method | Complexity | Notes |13|--------|-------------|--------|-----------|-------|14| Yahoo Mail | Gmail | IMAP → Gmail Import | Easy | Use app passwords |15| Yahoo Mail | Outlook | IMAP → Outlook Desktop | Medium | Manual folder setup |16| Zoho Mail | Gmail | IMAP → Gmail Import | Easy | Supports IMAP natively |17| Zoho Mail | Outlook | Microsoft Migration | Medium | Use Zoho IMAP settings |18| ProtonMail | Gmail | Export → Import | Hard | Limited export options |19| ProtonMail | Outlook | Manual forwarding | Hard | No bulk export |20| iCloud Mail | Gmail | IMAP → Gmail Import | Easy | Requires app password |21| iCloud Mail | Outlook | IMAP → Outlook | Medium | Limited folder support |22| Any IMAP | Any IMAP | IMAP bridging | Medium | Universal solution |23| Exchange On-prem | Cloud | PST export/import | Hard | Requires Exchange admin |2425## Universal IMAP Migration Process2627For most provider-to-provider migrations:2829### Step 1: Source Preparation301. **Enable IMAP** on source account (if not enabled by default)312. **Create app password** (Gmail, Yahoo, iCloud require this)323. **Test connectivity** using the IMAP test script334. **Estimate data size** using the mailbox size script345. **Document folder structure** for mapping reference3536### Step 2: Destination Setup371. **Create target account** with sufficient storage382. **Enable IMAP access** (for intermediary tools)393. **Configure mail client** (Outlook, Thunderbird, or web import)404. **Set up folder structure** matching source (if needed)415. **Test inbound mail** to verify account is working4243### Step 3: Migration Execution44Choose based on destination platform:4546#### To Gmail (any source with IMAP)471. Gmail → Settings → Accounts → Import mail and contacts482. Enter source IMAP details from provider matrix493. Choose import options (last 30 days vs. all mail)504. Start import — Gmail handles the rest automatically5152#### To Outlook/Microsoft 365531. Outlook Desktop → Add Account → IMAP source542. Set up both accounts in same Outlook profile553. Drag and drop folders from source to destination564. Alternative: Use Microsoft's import tools for bulk5758#### IMAP-to-IMAP (Universal)591. Use desktop client (Outlook, Thunderbird, Apple Mail)602. Configure both accounts as IMAP613. Copy folders between accounts via client624. Monitor for errors and retry failed items6364### Step 4: Validation651. **Compare email counts** between source and destination662. **Test key functionality** (send, receive, search)673. **Verify contacts and calendar** if migrated684. **Check folder structure** matches expectations695. **Validate largest messages** and attachments7071## Email Backup and Export7273Before any migration, create backups:7475### Source-Specific Export Methods7677#### Gmail / Google Workspace78- **Method**: Google Takeout (takeout.google.com)79- **Format**: MBOX (Thunderbird compatible)80- **Includes**: Email, contacts, calendar81- **Time**: 2-48 hours depending on mailbox size8283#### Outlook / Exchange84- **Method**: Export to PST file85- **Format**: PST (Outlook native)86- **Process**: File → Open & Export → Export to File87- **Limitation**: Desktop Outlook required8889#### Yahoo Mail90- **Method**: IMAP download via email client91- **Format**: Various (depends on client)92- **Process**: Configure IMAP, sync all folders locally93- **Note**: No bulk export tool from Yahoo9495#### Zoho Mail96- **Method**: IMAP export or Zoho's backup tool97- **Format**: MBOX or EML98- **Process**: Contact Zoho support for large mailboxes99- **Alternative**: IMAP sync to local client100101#### iCloud Mail102- **Method**: IMAP download103- **Format**: Various (client dependent)104- **Process**: Configure IMAP with app password105- **Limitation**: No native export tool106107#### ProtonMail108- **Method**: Individual email export only109- **Format**: EML files110- **Process**: Select emails individually, export111- **Note**: No bulk export due to encryption112113See `references/backup-export.md` for detailed step-by-step procedures.114115## Common Migration Challenges116117| Challenge | Solution | Prevention |118|-----------|----------|------------|119| Authentication failures | Use app passwords, check 2FA settings | Test connectivity first |120| Size limitations | Split into batches, exclude large attachments | Check provider limits |121| Folder mapping issues | Document structure, plan manual creation | Map folders before migration |122| Missing emails | Check spam/junk, verify date ranges | Do incremental migration |123| Slow transfer speeds | Use multiple connections, off-peak hours | Plan adequate time |124| Character encoding | Ensure UTF-8 support in tools | Test with non-ASCII subjects |125126## Provider-Specific Considerations127128### Yahoo Mail129- **IMAP Limitations**: Free accounts have folder limits130- **Authentication**: Must use app passwords with 2FA131- **Best Practice**: Migrate during off-peak hours (night/weekend)132133### Zoho Mail134- **IMAP Support**: Full IMAP access on all plans135- **Bulk Migration**: Zoho offers migration services for enterprise136- **API Access**: Available for custom migration tools137138### ProtonMail139- **Major Limitation**: No IMAP access due to encryption140- **Workaround**: Export to Thunderbird, then migrate from Thunderbird141- **Enterprise**: ProtonMail Bridge available for paid plans142143### iCloud Mail144- **Storage Limits**: 5GB free, consider upgrading temporarily145- **IMAP Quirks**: Some folders may not sync properly146- **Performance**: Slow IMAP response, plan extra time147148### On-Premises Exchange149- **Admin Access**: Required for PST export/import150- **Network**: Consider bandwidth limitations151- **Legacy Versions**: Older Exchange may need PST conversion152153## Troubleshooting Workflow154155When migration fails or stalls:1561571. **Check authentication** — Re-enter passwords, regenerate app passwords1582. **Verify IMAP settings** — Double-check server, port, SSL settings1593. **Test connectivity** — Run `scripts/imap-test.py` with exact settings1604. **Check quotas** — Verify destination has enough storage space1615. **Review logs** — Look for specific error messages in client logs1626. **Retry smaller batches** — Split large mailboxes into smaller chunks1637. **Contact support** — Provider-specific issues may need support tickets164165See `references/troubleshooting.md` for comprehensive error resolution guide.166167## Migration Best Practices168169### Planning Phase170- **Inventory thoroughly** — Document all email accounts, sizes, special requirements171- **Test with pilot users** — Never migrate entire organization without testing172- **Communicate clearly** — Set expectations with users about timeline and downtime173- **Plan rollback** — Always have a way to revert if migration fails174175### Execution Phase176- **Monitor actively** — Don't start migration and walk away177- **Validate incrementally** — Check each user/batch before proceeding178- **Keep logs** — Document what worked, what failed, and why179- **Stay flexible** — Be prepared to switch methods if primary approach fails180181### Post-Migration182- **Validate data integrity** — Compare counts, spot-check important emails183- **Train users** — New interface, different features, updated mobile setup184- **Monitor performance** — Watch for issues in first 48-72 hours185- **Plan cleanup** — When to disable old accounts, how long to retain access