This is a very common problem. First some basics:
There are two very different things in email:
Email Server (a.k.a. hosting)
This is the system that sends, receives and stores email messages. It may be a single computer, it may be a group of computers (for load sharing and/or redundancy). For almost all users this is a "black box". The hosting company (Google, Microsoft or any of thousands of smaller providers) gives you access details - typically IMAP and/or POP details, server names, usernames (most commonly either the part of the email address before the @ or the entire email address) and passwords (which you can usually change through some sort of web interface, but not necessarily inside your email program), port #s, etc. They also (to varying degrees) handle spam & virus filtering, out-of-office/vacation auto-reply messages, automatic forwarding, etc.
Traditionally, this is all that they did - nothing more, nothing less.
Email Application (a.k.a. email client)
This is the program you use to send & receive messages. Traditional applications include:
- Apple Mail (the built-in email program on a Mac)
Most (but not all) email applications on a smart phone are actually what I would consider "traditional" applications.
The second category of these applications is a web page running on the email server. Google, with Gmail, has taken this to an extreme with a very popular and very well done application. But there are a huge number of alternatives. Many of them are free, so they are commonly used by smaller hosting companies rather than developing their own application or paying for another application. One of those is Roundcube. There are also other proprietary, primarily web-site based, applications besides Gmail from Microsoft (Outlook Live/Office 365/etc.), Yahoo, AOL (both a true application and web-based) and nearly every internet provider for their "free" email accounts (Verizon, Comcast, etc.).
There are two common types of email access - POP and IMAP:
(Actually, Gmail and some others may use their own protocols internally, but almost every email server now provides at least limited access via POP, IMAP or both.)
POP essentially lets you read messages and either delete them from the server or leave them on the server. That's it. No "folders". Most traditional applications work very well with POP because they handled organization (folders, mailboxes, whatever paradigm you want) locally. But once you delete a message from the server, you can't read it again from the server.
IMAP has folders on the server. That is used by any web-based email program to allow you to organize your messages. It can also be used by many traditional email applications to allow you to synchronize your messages. Read a message in your Inbox and move it to "Important Clients" and then look in another application (web-based or Thunderbird on another computer or whatever) and the email has moved there as well.
There are advantages and disadvantages to each method. IMAP has a significant advantage when it comes to changing email servers.
The Big Move
Some systems (e.g., Gmail, at least the paid version) have tools available to help migrate messages from another server. There are also manual methods. Generally speaking, these rely on IMAP - possibly for "Source" and almost always for "Destination". Aside from automated tools, I generally do one of the following:
If the user already has a local email program, add the new account to the email program (most allow multiple accounts). Setup the new account for IMAP access, even if the user normally wants POP access (you can add that later). Transfer the messages from the old account to the new account in the local program - e.g., cut/paste or drag 'n drop. The email program will synchronize the messages via IMAP.
If the user does not use a local (traditional) email program, set one up. I usually use Thunderbird for this since it is free and available for multiple platforms. Add the old and new accounts, both IMAP. Once the old emails have downloaded, move them to the new account.
These transfers (except an automated online tool) can take a long time, depending on internet connection speed and also email (old & new) server speed. In addition, you need to make sure the new account is configured to be large enough (space & number of messages) to hold all the old emails.
At some point you need to change the MX records to tell the world that email is being handled by the new server. The details of that will vary depending on hosting company. Sometimes there may also be a transition time, depending on a bunch of factors - but usually that can be managed by checking the old email account for a few hours after changing the MX records, using a web based application - even if you normally use a traditional email program.