Not sure if there’s a pre-existing solution to this, so I figured I’d just ask to save myself some trouble. I’m running out of space in my Gmail account and switching email providers isn’t something I’m interested in. I don’t want to pay for Google Drive and I already self-host a ton of other things, so I’m wondering if there is a way to basically offload the storage for the account.
It’s been like 2 decades since I set up an email server, but it’s possible to have an email client download all the messages from Gmail and remove them from the server. I would like to set up a service on my servers to do that and then act as mail server for my clients. Gmail would still be the outgoing relay and the always-on remote mailbox, but emails would eventually be stored locally where I have plenty of space.
All my clients are VPN’d together with Tailscale, so the lack of external access is not an issue. I’m sure I could slap something roughshod together with Linux packages but if there’s a good application for doing this out there already, I’d rather use it and save some time.
Any suggestions? I run all my other stuff in Kubernetes, so if there’s one with a Helm chart already I’d prefer it. Not opposed to rolling my own image if needed though.
I think there is a possibility to have a local client using Gmail, with a rule set to delete mails on Gmail as soon as they are synced locally. So in this case Gmail would be nothing more than a relay/proxy, while your mails would actually be offline.
it’s possible to have an email client download all the messages from Gmail and remove them from the server. I would like to set up a service on my servers to do that and then act as mail server for my clients. Gmail would still be the outgoing relay and the always-on remote mailbox, but emails would eventually be stored locally where I have plenty of space.
Do you really need this extra server? Why not just configure the account on Thunderbird and move the older / archival mail to a local folder? Or even drag and drop it out of Thunderbird to a folder and store the resulting files somewhere?
I’m just asking this because most people won’t need regular access to very old email and just storing the files on a NAS or something makes it easier.
I’ve setup exactly what you’ve described. Some of the stories of people suddenly losing access to their Google accounts scared me enough that I wanted a copy of all my emails locally in case the same thing happened to me.
I setup an IMAP email server using Dovecot which I can access over my Tailnet from various client machines. I use Getmail on the server to periodically poll Gmail every few minutes for any new messages via POP access. Anything new is downloaded and dumped in the user’s inbox.
It’s a pretty solid setup - I’ve been using it for years.
I wrote this ansible role to setup dovecot IMAP server. Once a year I move all mail from the previous year from various mailboxes to my dovecot server (using thunderbird).
You could setup imapsync and sync your Gmail to a self hosted IMAP server and just never delete your mails.