(NOTE: A lot of the information here has been updated for 2013 in this more recent post)
Gmail-hosted mail in general
It’s fairly well-known that Google will host email for your domain… storing it on their servers, and making it accessible through both their Gmail web interface as well as normal IMAP.
To start, you create a Google Apps account. Most search results will take you (unsurprisingly) to the Google Apps for Business signup page, which is a paid service. If you are setting up infrastructure for a business, or need more than 10 email addresses on your domain, then it’s actually a pretty good deal. However, on a smaller scale for a personal domain, you probably want to signup for free Gmail hosting through this less-advertised link.
Normally, the process involves changing your MX (mail exchanger) settings to point at Google’s mail servers. This is not part of the nameserver information that you setup with your domain name registrar… but is instead a second level of settings, made through the web hosting account to which your domain points. Once the MX changes are complete, you inform Google through the “Domain settings” tab of your Apps management console. To verify that you really do control this domain, Google will ask you to upload a small file to your webserver. Once Google sees the file, you are good to go.
On parked domains
This also works for parked domains… that is, domains which are registered yet don’t have their own independent hosting. Web host providers will typically let you attach parked domains to your hosting account, where they serve as aliases for the domain that actually is hosted. Your primary domain might be “mydomain.com”, and you have the parked domains “mydomain.net” and “mydomain.org” pointing to the primary “.com” stuff.
Google-hosted mail works pretty much the same for these parked domains as well. Google charges by the user (i.e. email) account, with a limit of 10 on free accounts… but they don’t care how many parked domain aliases point to those users. Under the “Domain settings” tab of the Google Apps console, you click the “Add a domain alias” link and enter the information for your parked domain(s). You may also need to change the MX records for your parked domain(s) through your web host provider, if they are not automatically kept in sync with your primary domain.
I believe that when I first did this, Google asked me to upload a verification file to my webserver for the parked domains also. However, that wasn’t a problem since my parked domains point to the primary domain’s web server anyway. As long as the verification file was reachable through a parked domain URL, Google didn’t care. Once the process was complete, emails sent to “email@example.com” were seamlessly delivered to the primary “firstname.lastname@example.org” address.
Without a web host?
What if you are ONLY interested in having a personal domain name for email, and don’t much care about having a website? Or what if you have a web host provider that wants to charge you for parked domains? Why should you pay $60-$120 for a shared hosting, or hundreds of dollars per year for a VPS… when you’re only going to redirect it to Google’s free servers anyway?
I recently ran into this issue when changing web host providers. I’m happy with the new host overall, but not happy with the fact that they charge extra for parked domains. After some research, I found a way to keep my parked domains rolling with ZoneEdit. This company is primarily in the business of DNS hosting. They don’t host your website, or your email, or any other files… they ONLY host the MX records and other DNS settings needed to route your domain somewhere else. DNS hosting is free for the first two parked domains, and $1/month from there (with some pre-payment discounts available).
Have your domain registrar point your domain at ZoneEdit’s nameservers, and have ZoneEdit point your MX records at Google. Voila! Solid email hosting on your own professional-looking domain name address, with zero cost other than the domain name registration. If you have a website running on some other primary domain (or on a free service such as Google Sites), then ZoneEdit can also take browser requests for your parked domain and forward them to your website.
In my case, I was dealing with parked domain aliases which point to another fully-hosted domain. However, all of this should still be applicable even if you have no web host accounts for any of the domains. Google has a section in their documentation talking about ZoneEdit specifically, so Google is probably accustomed to this setup. However, even if Google does ask you to upload a verification file to a publicly-accessible web server… there are numerous free hosting providers out there. They are almost all terrible, but you could temporarily use one just long enough to complete the Google verification.
I’ve had a good outcome with ZoneEdit, but I’m sure there are other similar free DNS hosting services out there. I’d love to hear other people’s (non-spam!) experiences in the comments.