Mijn eigen email: een docker-mailserver en wat daarbij komt kijken

Eigenlijk vind ik email bijna de lijm van het internet. Alles wat je online doet, hangt uiteindelijk een keer aan een emailadres. Belangrijk genoeg dus om zuinig op te zijn, en toch geeft bijna iedereen dat adres gewoon weg aan Google, Apple of Microsoft. Makkelijk genoeg ook om eigenlijk nooit stil te staan bij wat ermee achter de schermen gebeurt. En toch begon ik me op een gegeven moment af te vragen of ik dat echt niet zelf wat meer in de hand kon houden.

Dus: waarom draaide ik eigenlijk niet mijn eigen mailserver?

docker-mailserver

De tool die ik gebruik heet docker-mailserver. Het is een alles-in-één-container die Postfix (versturen), Dovecot (ontvangen), OpenDKIM (ondertekenen), SpamAssassin en meer combineert. Dat klinkt als veel — is het ook — maar het zit in één docker-compose-bestand en de standaardconfiguratie is eigenlijk al goed genoeg om te gebruiken.

Het draait op mijn Raspberry Pi 5, achter mijn thuisverbinding via Glasnet. Glasnet blokkeert poort 25 niet, wat cruciaal is. Zonder die poort kun je geen mail ontvangen, en dat is precies waarom de meeste internetproviders dit voor consumenten niet werkbaar maken.

DNS is het halve werk

De technische kant van email is voor een groot deel DNS. Je hebt een MX-record nodig dat aanwijst waar mail naartoe moet, maar ook SPF, DKIM en DMARC als je wilt dat andere servers je berichten niet als spam zien.

SPF zegt: “mijn mail mag alleen via dit IP-adres”. DKIM voegt een cryptografische handtekening toe aan elk bericht. DMARC vertelt wat er moet gebeuren als een van de twee niet klopt. Samen zorgen ze ervoor dat grote mailproviders je serieus nemen.

Die records staan nu mooi bij TransIP en netjes ingesteld. De DKIM-sleutel haal je uit de container zelf en plak je in je DNS. En na wat propagatietijd kun je er mee aan de gang.

Wat er nu staat

Ik heb een paar adressen op @jbtroost.nl die ik in Thunderbird op mijn Mac, maar ook via een VNC Viewer rechtstreeks op de Pi kan benaderen — niet in een datacenter ergens ver weg.

Is het een klus? Ja. Was het lastiger dan verwacht? Zeker wel. Maar als het eenmaal draait, hoef je er nauwelijks meer naar om te kijken. En als er wél iets misgaat, weet ik tenminste waar ik moet kijken.

De keerzijde

Als mijn Pi eruit ligt, ontvang ik geen mail op dat adres. Voor de meeste mensen is dat niet te doen. Voor mij is het een bewuste afweging: ik heb de controle, ik draag de verantwoordelijkheid. En laat dat nou precies zijn wat ik wil met dit project.

../