Van Gmail naar de meterkast

Vanavond mijn mail weggehaald bij Gmail Workspace. Niet omdat het slecht werkte. Wel omdat een paar miljard regels Google-code mijn inbox lazen. En omdat er in de meterkast nog een oude HP OMEN lag die het anders koud zou hebben.

Doel: mail@peterreckers.nl en mijn agenda draaien op een server die ik bezit, zonder dat Google er iets mee te maken heeft.

De architectuur

Het probleem met thuis-mail: residentieel IP, geen poort 25 uit, slechte reputatie. Niemand accepteert mail rechtstreeks van zo’n IP. Dus splitsen:

Een paar momenten

Niet alles ging in één keer goed.

Stalwart’s admin-API gaf bij Coolify-deploys spook-UUIDs terug. POST 200, GET 404. Niet meer omheen gewerkt. Raw docker-compose op de host, klaar.

Default Stalwart luistert op SMTP-poorten 25 en 465. Voor mail-clients heb je 587 nodig. Dat ontbrak. Toegevoegd via een nieuwe listener in de admin UI.

De meest leerzame: ik verhuisde de DNS van reckers.ai naar Namecheap-nameservers omdat ik dat domein wilde uitrangeren. Wat ik vergat: het oude A-record mail.reckers.ai ging mee in die opruiming, maar de PTR (reverse DNS) van mijn Hetzner-IP wees daar nog naartoe. Gmail’s forward-confirm check faalde direct. Elke mail die ik probeerde te sturen kreeg een 5.7.25 reject. Tien minuten paniek, daarna PTR via Hetzner Cloud API verzet naar mail.peterreckers.nl en het bijbehorende A-record aangemaakt. Werkte.

Het resultaat

Mail-tester geeft 10 uit 10. SPF, DKIM, DMARC alle drie pass. Mail belandde eerst nog in Gmail spam (nieuwe sender, geen reputatie), tot ik mezelf als contact toevoegde. Daarna inbox. Reputatie bouwen kost een week of twee, dat snap ik.

Mijn iPhone Mail, mijn MacBook Mail, mijn agenda op beide: alles draait nu via die laptop in mijn meterkast. Bereikbaar zonder dat ik mijn router heb opengezet. Op infrastructuur die ik begrijp en bezit.

Volgende: de website waar je dit op leest moet ook daar gaan draaien.

← Alle schrijfsels