Groß war die Freude als ich gestern meinen ersten Email-Server first try konfigurierte und die Email tatsächlich versendet wurde. Bis zu dieser Stelle war es auch nicht besonders schwer, man sucht sich einen Guid und befolgt ihn. So weit, so gut.

Aber wie immer steckt der Teufel im Detail. Dass Emails versendet und empfangen werden können ist für sich alleine betrachtet zu oberflächlich. Dahinter verstecken sich viele Mechanismen, die sich um die Authentifizierung, Signierung, Handshakes und dergleichen kümmern. Die zu installieren ist nicht die Schwierigkeit - die richtigen Optionen zu finden - das muss man können!

Der Abschlusstest nach einer zwei stündigen Arbeit war https://www.mail-tester.com/ - ein Tool, welches deine Email Einstellungen automatisch bewertet. 

Domain Keys Identified Mail (DKIM) ist eine E-Mail-Authentifizierungsmethode, mit der eine Organisation die Verantwortung für eine gesendete Nachricht übernehmen kann. Es verwendet Public-Key-Kryptographie, um E-Mails digital zu "signieren" und den Empfängern zu beweisen, dass die Nachricht vom Domäneninhaber gesendet wurde. Die Empfänger können die Signatur mit dem veröffentlichten öffentlichen Schlüssel ihrer Domäne abgleichen, um die Signatur zu überprüfen.

Wie dieses Tool mit dem Rest der Architektur verbandelt ist, verstehe ich bis jetzt nicht.


Tool Rolle Aufgabe in deinem Prozess
Postfix Der Postbote (MTA) Nimmt die Mail von Thunderbird an und entscheidet, wohin sie geht. Er fragt Rspamd: "Ist das Spam und soll ich das unterschreiben?"
Rspamd Der Kontrolleur Prüft die Mail auf Spam-Merkmale und fügt die DKIM-Signatur hinzu.
Redis Das Kurzzeitgedächtnis Eine Datenbank, in der Rspamd Statistiken, Zwischenergebnisse und Bayes-Filter-Daten speichert.
Unbound/DNS Das Telefonbuch Rspamd nutzt DNS, um die Reputation von IP-Adressen zu prüfen und DKIM-Keys im Netz zu verifizieren.

 Die Kommunikation (Protokolle)

Damit diese Tools miteinander reden können, nutzen sie spezifische Sprachen:

  • SMTP: Thunderbird schickt die Mail per SMTP an Postfix.
  • Milter-Protokoll: Das ist die "Geheimsprache" zwischen Postfix und Rspamd. Postfix schickt die Mail-Inhalte über den Port 11332 an Rspamd und wartet auf die Antwort.
  • RESP: Die Sprache, mit der Rspamd Daten in Redis schreibt oder liest.

Der Zusammenhang (Workflow)

  1. Thunderbird liefert die Mail bei Postfix ab.
  2. Postfix pausiert die Auslieferung und schickt die Mail-Header und den Inhalt über die Milter-Schnittstelle (Port 11332) an Rspamd.
  3. Rspamd schaut in seine Regeln, fragt bei Redis nach Statistiken und berechnet einen Score.
  4. Wenn alles okay ist, holt Rspamd den DKIM-Key von der Festplatte, erstellt eine Signatur und schickt den Befehl "Header hinzufügen" zurück an Postfix.
  5. Postfix fügt die Signatur ein und schickt die Mail erst dann an das Ziel (z.B. Gmail) raus.

Irgendwo oder irgendwie wollte dieser DKIM-Key einfach nicht in die Signatur. Und jetzt will er! Wie ich das gemacht habe, weiß ich letztendlich selber nicht. Und ich glaube, ich will es auch gar nicht wissen ...