Migrating from Gmail to Purelymail
Last modified:I've recently decided to DeGoogle my life. To be clear, I don't think I'll ever be able to completely succeed, but I think I can cut out a good chunk of it without too much effort. Gmail is an easy target for me since I don't send a ton of email and mostly just use my email address as my primary online identity. And therein lies the problem—I don't think that's so great. That, and the whole not being a fan of the convert-attention-into-money business model.
Enter Purelymail. Yes, I looked at a few other providers...[1]
- I use Proton for work. It's great, but the E2E encryption gets very annoying as soon as you leave their ecosystem. At least for personal email, I subscribe to the "email as postcard" philosophy, so don't really feel too strongly about E2EE. Honestly, the service is just more than I need.
- I tried Fastmail for a bit. It's also nice, and has great tooling for migrating from other providers, especially big ones like Gmail. Also more than I need though.
- I also looked into Zoho and Tuta, but didn't actually try them.
Purelymail is just dead simple and I love that. It lets me use my own domain and then some (literally, I can use as many domains as I want). It lets me have as many users as I want. It lets me store as much email as I want. And it's only $10/year.[2] Yes, that price would go up if it ended up costing more than $10/year to operate my account, but that's not going to happen—I hate keeping email around.
It is operated by only one person, but they seem to subscribe to the Choose boring technology philosophy, so if they get hit by a bus (1) the service will keep running and (2) someone else could presumably come in and operate it before it falls over. And if not, they've written a nice import/export tool to get data out relatively quickly. And if that doesn't work, oh well, it's probably not a great idea to use email as your repository of important information.
But you probably give zero shits about all this and just want some instructions, so here it goes, with the following assumptions.
- You'd like to use Purelymail with your own domain.
- You have said domain and can add DNS records to it.
- You'd still like to be able to send emails from Gmail.
Here's the high-level process:
- Sign up for Purelymail
- Get a Google app password
- Import existing Gmail messages into Purelymail
- Setup your domain to point to Purelymail
- Update your existing Purelymail user to use your domain
- Forward Gmail to Purelymail
- Setup the Purelymail web client to be able to send emails from Gmail
Sign up for Purelymail
You can do that here. For now, just sign up
using an @purelymail.com
domain. We'll change that to yours in a few steps.
Also, just sign up for the free trial. It's really just $0.50 worth of credits
to try the service. No limitations. It's very simple to add your payment info
later.
Get a Google app password
We're going to need this to import your existing messages and to configure the Purelymail web client to be able to send from Gmail.
Instructions
- Navigate to Google's page for generating app passwords.
- Sign-in to your Google account.
- Give the app password a descriptive name (like "Purelymail").
- Click Create.
- You'll be presented with your new app password. Copy it and save it somewhere (I added mine as a secure note in my "Purelymail" entry in my password manager). You can delete this later if you want.
Import existing Gmail messages into Purelymail
To do this you'll need to run the import tool using the app password you just generated. This might take some time depending on how many messages you have. This may also eat up some of your trial credits if you have a ton of email. But probably not all of them, unless you have an insane amount of email.
Instructions
- Sign-in to your Purelymail account here if you aren't already.
- Navigate to Tools -> Mail import/export tool.
- Click the Start new import/export button.
- Select Import mail into a Purelymail account.
- For Source select "IMAP account".
- Email address: Enter your Gmail address.
- Password: Enter the app password you just generated.
- Click the Autodetect button.
imap.gmail.com:993
should show up in the Server/Port field.
- For Destination select "Purelymail user".
- Select the user you created when signing up.
- Click Next.
- The next page should have a dropdown titled Default and a table with
two columns: Source folder and Destination.
- The Source folder column should contain all of your Gmail labels.
- The Destination column contains dropdowns that allow you to select which Purelymail folder messages with that label should be imported to.[3]
- The default behavior is "Import if same folder already exists", which effectively means that only your Gmail Inbox will get imported. You do not want this.
- If you want to retain all of your Gmail labels as separate folders in Purelymail, select the "Import into folder of the same name or create a new folder" option from the Default dropdown.
- If you want to start fresh, or only select a subset of your existing
labels, I'd suggest at least using this Source folder ->
Destination mapping:
INBOX -> INBOX
[Gmail]/All Mail -> Archive
[Gmail]/Drafts -> Drafts
[Gmail]/Sent Mail -> Sent
[Gmail]/Spam -> Junk
[Gmail]/Trash -> Trash
- Click Start and wait a bit for the import to complete.
- You can verify that the import was successful by logging into the Purelymail web client and poking around.[4]
Setup your domain to point to Purelymail
Before moving forward, it's best to configure Purelymail to use your domain. This is a relatively straightforward process if you're familiar with adding DNS records to your domain.
Instructions
- Sign-in to your Purelymail account here if you aren't already.
- Navigate to Domains.
- Click Add new domain.
- Enter the name of your domain (
yourdomain.com
) in the Name field.- You can click the Check DNS records button if you want, but the check should fail.
- Add the necessary DNS records using your DNS provider.
- Scroll to the bottom of the page and you'll see some DNS Records documentation. It's probably worthwhile to skim that.
- Add the DNS records. All of these are in the documentation, but repeated
here for clarity. Records are in the following format
[Type] [Host] [Value]
. Note that the host field of DKIM records must end with your domain.[5]- MX:
MX @ mailserver.purelymail.com.
- SPF:
TXT @ v=spf1 include:_spf.purelymail.com ~all
- Ownership proof record:
TXT @ purelymail_ownership_proof=1b915a50e697be9e0e726afbe4c13cc58c27cfb7784052b76c18ace958d4b82f9bb792ec24ec7df71afb212f47c0d6ea32d7119c36017b11ad0aafe787856492
- DKIM 1:
CNAME purelymail1._domainkey.[yourdomain.com]. key1.dkimroot.purelymail.com.
- DKIM 2:
CNAME purelymail2._domainkey.[yourdomain.com]. key2.dkimroot.purelymail.com.
- DKIM 3:
CNAME purelymail3._domainkey.[yourdomain.com]. key3.dkimroot.purelymail.com.
- DMARC:
CNAME _dmarc dmarcroot.purelymail.com.
- MX:
- Go back to the top of the page and click the Check DNS records button. The validation should pass.
- Scroll down to the Settings section.
- Make sure Allow Account Reset is checked.
- Make sure Deliver Mail To is set to "Purelymail".
Update your existing Purelymail user to use your domain
Now that you've setup your domain, you can update your Purelymail user to use it
instead of @purelymail.com
.
Instructions
- Sign-in to your Purelymail account here if you aren't already.
- Navigate to Users.
- Click on your existing user with a Purelymain domain (i.e. "user@purelymail.com").
- In the Name field enter the username you'd like and select your domain from the dropdown.
- (Optional) While you're here I'd also suggest setting up 2FA.
- Navigate to the Two-Factor Authentication (2FA) section.
- (Optional) Check Require 2FA if you want to force all users to have it.
- Click Add new TOTP Code (or Add Security Key if you have one) and set it up in your password manager or authenticator app.
- Go back to the top and click Save.
Forward Gmail to Purelymail
Just because your Gmail messages have been imported into Purelymail doesn't mean new messages will end up there. We need to setup Gmail to forward those to your new email address.
Instructions
- Navigate to your
Gmail settings
- You'll be required to sign-in if you aren't already.
- Click the Forwarding and POP/IMAP tab.
- In the Forwarding section click the Add a forwarding address button.
- Enter your new email address in the modal and click Next.
- This may prompt another sign-in.
- Eventually you'll be taken to a page that says "Forwarding mail to [email address you entered]". Click the Proceed button.
- It will then inform you that a verification email was sent to the address you entered.
- Verify the email address you entered.
- Navigate to the Purelymail web client.
- Open the verification email from "Gmail Team".
- Click the verification link in the email.
- That will take you to a Gmail verification page where you should click the Confirm button.
- Navigate back to your Gmail settings and the Forwarding and POP/IMAP tab.
- In the Forwarding section select the "Forward a copy of incoming mail..." option and select your new, verified email address in the dropdown.
- Select what you'd like Gmail to do with the forwarded message in the next
dropdown.
- I had it archive copies for the first few weeks then just had it delete them once I was fully committed to Purelymail.
Setup the Purelymail web client to be able to send emails from Gmail
Even if you no longer plan on using your Gmail address, it's going to take time to fully transition to your new one. So it's probably a good idea to be able to send email with it in a pinch without having to navigate to Gmail. This is simply a matter of creating a new identity that uses the Gmail SMTP server in the Purelymail web client.
Instructions
- Navigate to the Purelymail web client.
- Click the ⚙ in the left-hand toolbar.
- Click Identities.
- Click the Create button at the top of the window.
- Enter a Display Name and add your Gmail address to the Email field.
- Click the Save button.
- Select the identity you just created.
- Update the SMTP Settings
- Un-select "Use the default SMTP server".
- Server IP/Hostname + Port:
tls://smtp.gmail.com:587
. - Username: enter your Gmail address
- Password: enter your Google app password
- Repeat Password: enter your Google app password
- Click the Save button.
Next steps
And that's pretty much it. You should now be able to use Purelymail with an online identity you fully own and still access Gmail if needed. That said, there's plenty of things I didn't cover. Here are some you could do next.
Poke around the web client
Purelymail uses an open source webmail client called Roundcube. It may not look as polished as the Gmail web client, but it's still very functional. It's also a progressive web app (PWA), so it should work well on any screen size.
Transition logins from Gmail to Purelymail
At least for me, owning my online identity was one of the primary reasons for doing this. In order to do that, you should probably try to transition as many of your existing logins to your new email address. That process takes time, but this setup let's you do it gradually. Doing this is also a good opportunity to purge accounts you no longer use, or unsubscribe from email lists you never read.
Configure other mail clients
You'll probably want to use your new email on your phone, tablet, or whatever. While each mail client is slightly different, the process for setting it up largely boils down to pointing your client at Purelymail's IMAP and SMTP servers. Purelymail has some great documentation on how to do this.
Migrate your contacts
Purelymail provides a CardDAV server that you can use to manage your contacts. Migrating contacts to Purelymail is simply a matter of exporting them from whatever service you're currently using, then importing them using the web client. Once they're migrated, it's easier to email your contacts from the web client, and you can setup your mail/contact clients to use the CardDAV server as well.
Use Purelymail for your calendars
Purelymail also provides a basic CalDAV server. The CalDAV server isn't integrated with the web client, so you'll need to setup your own. And since some calendar clients don't support creating calendars, Purelymail provides a tool specifically for creating them. Depending on the calendar client you use, you may be able import all of your GCal calendars into Purelymail.
Full disclosure, I still use a couple of my GCal calendars. One is a shared calendar and the other is my old GCal default that I use when I get invites from folks in the Google ecosystem. I've yet to find a clean solution for syncing calendars between services. If you know of one, please let me know.
FIN
Was this helpful? Is there an error? Interested in hearing more about the process or next steps? Email me and I'll do my best to help you out!
I came across this spreadsheet while writing this post. I probably should've looked into some more of the options in there, but f*** it, Purelymail sang to me. ↩︎
Or potentially less if you switch to their advanced pricing model, which simply charges based on usage. If you're on their basic $10/year model and it's costing more than that to operate, then they'll force you to use the advanced model. ↩︎
I'm not sure what happens to messages with multiple labels. Do they get put into one folder? If so, which one? Do they get copied into multiple folders? ↩︎
If the import didn't work, have no fear. Your emails are still safe in Gmail. ↩︎
Most DNS providers will automatically add your domain, so you may be able to omit that portion of the host (i.e. just enter
purelymail1._domainkey
). ↩︎