Migrate
How to Migrate Yahoo to Office 365
Move Yahoo mailboxes to Office 365 with EAC IMAP batches, app passwords, and a clean MX cutover that keeps mail flowing during the swap.
Alex Kerr
Lead Migration Engineer, Mailbox Taxi
Yahoo Mail and Office 365 sit at opposite ends of the operational spectrum. Yahoo is a consumer service with a flat folder model, aggressive IMAP throttling, and an app-password requirement that surprises every admin running their first batch. Office 365 expects clean SMTP-formatted aliases, licensed mailboxes, and a migration endpoint configured exactly to its specification. This guide walks you through the EAC IMAP batch path end-to-end so a Yahoo to Office 365 move lands without lost mail, broken folder mappings, or a chaotic MX cutover.
What you need before you start
Before you create a single batch, the destination tenant needs to be ready and the Yahoo side needs to be unlocked for IMAP traffic. Both sides have non-obvious prep work, and skipping either causes the entire batch to fail on the first item.
Destination prerequisites (Office 365)
- Your custom domain is verified in Microsoft 365 and DNS ownership is confirmed.
- Each target user has a license that includes Exchange Online (most commonly Microsoft 365 Business Standard or E3).
- Mailboxes exist in Exchange Online with the correct primary SMTP address. Users created without a mailbox or with the wrong UPN will fail batch entry with a
RecipientNotFounderror. - You are signed in as a Global Administrator or have the Recipient Management and Organization Management roles assigned in Exchange Online.
Source prerequisites (Yahoo)
- Each Yahoo account has IMAP enabled. This is on by default for most personal accounts.
- Every Yahoo account has a generated app password. Regular Yahoo passwords will not authenticate against imap.mail.yahoo.com from a non-Yahoo client.
- Two-step verification is enabled on Yahoo accounts that need an app password. Yahoo will not show the app-password option until 2SV is on.
- You have collected the Yahoo username (full address, including
@yahoo.comor the relevant country TLD) for every user being moved.
Skip the manual setup — let Mailbox Taxi handle it
One desktop app, every IMAP provider, zero data leaving your machine.
Why Yahoo to Office 365 is its own special case
Most IMAP-to-Office-365 paths follow the same EAC batch wizard, but Yahoo brings four wrinkles that shape every later decision. Understanding them up front saves you from chasing symptoms.
- App passwords are mandatory. Yahoo treats Exchange Online as a third-party client. Without a 16-character app password, authentication fails immediately and the batch flags every mailbox as
AUTHENTICATIONFAILED. - Aggressive connection throttling. Yahoo limits the number of simultaneous IMAP connections per account and per source IP. You will see
Too many simultaneous connectionsif you scale a batch too aggressively or run multiple admin sessions from the same network. - Flat folder layout. Yahoo encourages users to put everything in the Inbox and uses labels rather than deep folder hierarchies. The migration moves whatever exists, but you should expect mailbox counts where 80 percent or more of the mail sits in the Inbox itself.
- No calendar or contacts move. IMAP only carries mail. Yahoo Calendar and Yahoo Contacts have to be exported and imported separately, and you should communicate that clearly to users before cutover. Mailbox Taxi can help with the mail side; calendars and contacts still need a one-off export.
If you are running this against a non-Microsoft destination instead, the Yahoo to Gmail migration path follows a different shape entirely and is worth reading if you also support consumer destinations.
Step-by-step migration
Prepare the destination tenant
Confirm your domain is verified in Microsoft 365, then license each target user. Open the Exchange admin center, browse to Recipients, and verify every destination mailbox exists with the correct primary SMTP address. If a mailbox is missing, create it now and wait for replication before continuing. Lower the MX TTL for your domain to 300 seconds at least 24 hours before the planned cutover so the eventual DNS change propagates quickly.
Generate Yahoo app passwords
For every Yahoo account in scope, sign in to the Yahoo account at login.yahoo.com, open Account Info, choose Account Security, and select Generate app password. Yahoo returns a 16-character string with no spaces. Save it securely. The app password is shown once, and rotating it later means restarting any in-flight batch for that mailbox. If a user has not enabled two-step verification, the app-password option will be missing until they do.
Background on why this is needed lives in the app password glossary entry — share it with users who do not understand why their normal Yahoo password will not work.
Build the CSV manifest
The EAC IMAP migration wizard needs a CSV with three columns:
EmailAddress,UserName, andPassword.EmailAddressis the Office 365 primary SMTP address.UserNameis the full Yahoo address (for examplealex.kerr@yahoo.com).Passwordis the 16-character Yahoo app password without spaces. Save the file as UTF-8 to avoidInvalidCsverrors during import. Keep one mailbox per row and do not include header padding spaces.Create the IMAP migration endpoint
In the Exchange admin center, go to Migration, then Endpoints, and choose New. Select IMAP. Enter
imap.mail.yahoo.comas the IMAP server,993as the port, and SSL as the security type. Leave the authentication as Basic. Set the maximum concurrent migrations to a conservative value — 5 to 10 is sensible for a first batch given Yahoo's throttling. Set the maximum concurrent incremental syncs slightly lower than the migrations value. Save the endpoint and confirm the test connection succeeds.Run a test batch
Create a new migration batch using the IMAP endpoint and your CSV, but include only one or two pilot mailboxes. Choose the target delivery domain, accept the default folder mappings, and start the batch automatically. Let it reach the Synced state, then audit the destination mailbox in Outlook on the web. Compare folder counts against Yahoo, open a handful of messages to confirm bodies and attachments are intact, and check that Bulk has mapped into Junk Email. Only proceed once a pilot mailbox is clean.
Schedule full-mailbox batches
Split remaining mailboxes into batches of 20 to 50 and stagger the start times by 30 to 60 minutes. Monitor the per-mailbox status in the Exchange admin center. When you see
Too many simultaneous connections, reduce the concurrency on the endpoint and let the failed mailboxes retry. Plan for incremental syncs to run on each batch until cutover — Exchange Online keeps polling Yahoo for new mail every 24 hours by default. For a deeper view of the EAC batch model, the IMAP to Office 365 guide covers the moving parts in more depth.Cut over MX records
Once every batch shows Synced and the most recent incremental sync is clean, you are ready to flip MX. Update the MX record at your DNS provider to point at the Office 365 endpoint shown in your tenant (the
<tenant>.mail.protection.outlook.comstyle record). Keep the Yahoo forwarder, if you set one up, until you have visibility on the first hour of Office 365 inbound traffic. Once mail is landing, remove the forwarder and any Yahoo aliases that reference the new domain.Complete and decommission
Mark each batch as Complete in the Exchange admin center to stop incremental syncs and release the Yahoo connections. Archive the migration report CSVs to your evidence store — they are your only record of skipped items. Revoke the Yahoo app passwords by deleting them from each Yahoo account's security settings. If you are decommissioning the Yahoo accounts entirely, wait at least 30 days after MX cutover before deleting them so you have a rollback window.
Gotchas specific to Yahoo
Yahoo's IMAP implementation is mostly standard, but there are five issues that bite teams who have not done this migration before.
Throttling is silent until it is not
For the first hour or two, batches run cleanly. Then you hit Yahoo's per-account and per-IP limits and items start failing with Too many simultaneous connections. Exchange Online will retry, but throughput drops dramatically. Keep concurrency low and avoid running batches from networks that are also doing other Yahoo-heavy work.
The Bulk folder needs a mapping
By default the IMAP migration creates a folder literally called Bulk in Office 365 instead of routing those messages to Junk Email. If you care about that mapping (most admins do), set it on the migration endpoint advanced properties. Otherwise users see two junk folders after migration.
Sent and Sent Messages
Yahoo has historically used both Sent and Sent Messages as folder names depending on account age and locale. The wizard maps Sent cleanly. Sent Messages shows up as a separate folder in Office 365 unless you add a mapping. Run a Get-Mailbox inspection on a pilot to confirm which name you see.
Aliases on the Yahoo side
If your users have Yahoo disposable addresses or @ymail.com aliases attached to the same mailbox, those aliases keep working on the Yahoo side after MX cutover. You cannot redirect them. Tell users to send any final updates to those aliases before you switch.
Mailbox quota mismatch
Yahoo has historically given accounts 1 TB of free storage. Office 365 mailboxes top out at 100 GB on most plans. If a Yahoo source mailbox exceeds the destination quota, the batch reports Quota exceeded and stops syncing that mailbox once the destination is full. Audit source mailbox sizes before scheduling and split oversized accounts into an archive plan.
Plan for the 100 GB ceiling
Run a size audit on every Yahoo source mailbox before you build the CSV. Yahoo will happily let a user accumulate 200 GB; Exchange Online will not accept it. Identify oversized mailboxes early so you can archive locally before cutover.
Errors you will actually see
Real engineering output is more useful than abstract advice. Here are the messages you should expect, what they mean, and how to clear them.
AUTHENTICATIONFAILED— the Yahoo password in your CSV is the regular password, not an app password. Regenerate and re-upload the CSV.Too many simultaneous connections— Yahoo throttled the migration. Drop concurrency on the endpoint and let Exchange Online retry on its own schedule.Folder UTF-7 conversion error— a folder name uses characters the legacy IMAP folder encoding does not support. Rename the source folder in Yahoo and let the next incremental sync pick up the change.Message too large for destination— the source message exceeds the Exchange Online 150 MB receive limit. These are almost always old auto-replies or scanned PDFs. Skip them, log the count, and revisit only if the user complains.STARTTLS handshake failed— you accidentally created the endpoint on port 143 with STARTTLS instead of port 993 with implicit SSL. Recreate the endpoint with the correct settings.
Communication plan for users
Migrations fail more often because of user confusion than because of broken batches. A short, specific note before you start prevents most of the support tickets.
- Tell users to stop using Yahoo Mail webmail for new replies once their batch shows Syncing. Anything they send from Yahoo after that point lives only in the Yahoo Sent folder until the next incremental sync.
- Warn them that Yahoo Calendar and Yahoo Contacts will not move automatically. Provide simple export and import instructions.
- Confirm the day and time of MX cutover. Tell them to expect a brief delay (usually under 30 minutes) when their inbox switches over.
- Send a follow-up the day after cutover with the new Outlook on the web URL and a reminder to remove the Yahoo account from any mobile mail clients.
If you want the broader pattern, the complete email migration guide covers communication templates and rollback checklists you can lift wholesale.
When to use Mailbox Taxi instead
EAC IMAP batches work well for clean, single-tenant Yahoo to Office 365 moves where every user has a verifiable app password. They struggle when you need to migrate from one Yahoo account into a shared mailbox, run a one-off personal migration where the IT admin is also the end user, or move a handful of mailboxes without standing up the EAC tooling. Mailbox Taxi runs locally, does not need a tenant-level migration endpoint, and handles the same Yahoo IMAP source through a simpler UI. The Office 365 migration overview explains where local tools fit versus tenant tools.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.
Related reading
migrate
How to Migrate Yahoo Mail to Gmail
Move Yahoo Mail to Gmail or Google Workspace using IMAP, Yahoo app passwords, and the right path for personal Gmail or Workspace tenants.
migrate
How to Migrate from IMAP to Office 365
Step-by-step IMAP to Office 365 migration: EAC setup, CSV mapping file, throttling limits, cutover steps and the gotchas that bite admins.
blog
Office 365 Migration: The Definitive Playbook
A complete office 365 migration playbook for IT admins: discovery, batching, throttling, modern auth, cutover vs staged vs hybrid, and validation.
glossary
What Is an App Password? A Plain-English Guide
What an app password is, how to generate one in Gmail, Yahoo, and Apple, and when OAuth is the better path for connecting a migration tool.
blog
The Complete Email Migration Guide for 2026
Plan, execute and validate an email migration without losing folders, flags, or sleep. A pillar guide that walks the full process end to end.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.