I recently moved emails for domains that I host to gmail (keeping the @mydomain.com email address). I thought I was doing everything right so no emails would be lost, but this turned out not to be the case.
Firstly I set up a google account with email accounts for the email addresses on my domain.
Then I changed the MX records of my domain to gmail's.
I know that propagation of changes takes some time to take affect across the web. I thought that any email sent during this time would either go to the old email accounts or to gmail. I could then use my hosting's IP address to get emails from the old servers, and move them across to gmail's.
However during the switch I sent myself emails as a test and they never appeared in either email account. What's more I also didn't get any error message saying the email couldn't be delivered.
I really need to know what went wrong so in future I can guarantee to my clients that no emails will be lost in the transfer process. An interruption in service is not ideal, but so long as all emails do eventually get delivered then its acceptable.