hermes-erkenntnisse/mail-archivierung-ki1.md

3.4 KiB

Mail-Archivierung und Filter-Bypass (mail.ki1.it & mail.consoro.eu)

Diese Dokumentation beschreibt das Setup zur vollständigen und unsichtbaren Archivierung aller ein- und ausgehenden E-Mails, ohne das Sende- oder Empfangsverhalten (insbesondere durch unerwünschte Bounces) zu beeinflussen.

1. Das Archiv-Postfach auf mail.ki1.it (Mailcow)

Der Server mail.ki1.it nutzt Mailcow. Hier ist das Postfach archiv@ki1.it eingerichtet.

  • Besonderheit Speicherplatz: Die Domains ki1.it, go-ki.eu und go2ki.eu haben unlimitierten Speicherplatz (0 in Mailcow). Das Postfach archiv@ki1.it hat ebenfalls unlimitierten Speicherplatz (Quota = 0).
  • Passwort & Webmail-Login (SOGo): Da einfache API-Aufrufe ohne Bestätigung (Fehlen des password2-Parameters) pauschal mit einem "Complexity-Check"-Fehler abgewiesen werden, wurde das Postfach ordnungsgemäß mit beiden Parametern (password und password2) über die offizielle Mailcow-API angelegt. Dies ist zwingend notwendig, da eine reine MySQL-Injektion dazu führt, dass SOGo das Postfach nicht erkennt und beim Klick auf "Webmail" einen "Unauthorized" (403) Fehler zurückgibt. Durch die API-Nutzung sind alle Redis-Caches und SOGo-Views korrekt initialisiert.
  • Speicher-Architektur (mergerfs): Die E-Mails auf mail.ki1.it werden hybrid gespeichert. Die lokale schnelle Festplatte und eine riesige Hetzner Storage Box sind via mergerfs zu /mnt/vmail-hybrid zusammengefasst. E-Mail-Clients sehen alle Mails nahtlos im Posteingang. Ältere Mails liegen auf der Storage Box und laden beim Anklicken minimal langsamer, sind aber sofort verfügbar.

2. Der unsichtbare Mail-Filter auf mail.consoro.eu (Postfix)

Um jede Mail vor dem Verlassen oder direkt beim Eintreffen auf mail.consoro.eu zu kopieren, wird die native Postfix-Funktion always_bcc genutzt.

WICHTIG: Ein normales always_bcc birgt die extreme Gefahr, dass bei einem Ausfall des Archiv-Servers ein "Undelivered Mail"-Bounce an den ursprünglichen Absender geschickt wird. Das wurde durch folgendes Setup zu 100% verhindert:

A) Whitelisting auf dem Archiv-Server (Mailcow)

Die IP des Hauptservers (157.90.24.227) wurde in der Mailcow-Datenbank (mail.ki1.it) in die Tabelle forwarding_hosts mit filter_spam = 0 eingetragen. Effekt: Mailcow prüft keine SPF-, DKIM- oder DMARC-Records für Mails von dieser IP. Die BCC-Kopien (die oft externe Absender-Domains haben) werden niemals als Spam abgewiesen.

B) Blackhole-Routing für Bounces (Postfix auf mail.consoro.eu)

Falls der Archiv-Server doch offline ist, fängt Postfix den Bounce ab und vernichtet ihn lautlos:

  1. always_bcc = archiv@ki1.it (in /etc/postfix/main.cf)
  2. Custom Transport (in /etc/postfix/transport): archiv@ki1.it archive-smtp:
  3. Envelope-Rewrite (in /etc/postfix/master.cf): Der archive-smtp Transport nutzt smtp_generic_maps = regexp:/etc/postfix/archive_generic.
  4. Generic Map (in /etc/postfix/archive_generic): Schreibt den Envelope Sender (für die Fehler-Rückläufer) per /(.*)/ auf noreply-archive@mail.consoro.eu um.
  5. Das schwarze Loch (in /etc/aliases): noreply-archive: /dev/null

Ergebnis: Jeder Bounce, der vom BCC generiert wird, geht an noreply-archive@mail.consoro.eu und landet sofort im Nirvana (/dev/null). Der originale Absender und Empfänger der E-Mail merken von der Archivierung absolut nichts. Keine Fehler, keine Verzögerungen.