Deutsch | English | Änderungsprotokoll | TODO | Anleitungen | MailBurg Server | Rechtliches
Ein Archiv für E-Mail, das an den Ort gehört, den Sie bestimmen.
MailBurg holt Ihre Post aus beliebig vielen Postfächern zusammen, legt sie an einer Stelle ab und macht sie durchsuchbar – Mailtexte, Kopfzeilen und den Inhalt der Anhänge. Wo dieser eine Ort liegt, entscheiden Sie: interne Platte, externe Platte, ein von Nextcloud synchronisierter Ordner.
Linux und Windows. Entwickelt und im Alltag erprobt unter Linux; unter
Windows gibt es eine fertige MailBurg.exe – ohne Python, ohne Installation,
mit eingebauter Texterkennung, und Einrichtung, Abruf, Suche sowie der
regelmäßige Abruf über die Aufgabenplanung sind dort durchgespielt.
macOS ist noch nicht dran. Tests und Einrichtung laufen dort nachweislich durch, benutzt hat MailBurg dort aber noch niemand. Für ein Archivprogramm ist das zu wenig, um es zu empfehlen: Was beim Aufnehmen schiefgeht, fällt erst Jahre später auf. Es hängt an einem Gerät zum Prüfen, nicht an einer Fassungsnummer – solange es keines gibt, bleibt dieser Absatz stehen.
Dasselbe Programm, dasselbe Archivformat, zwei Wege hinein. Erkennbar am Wappen: blau am eigenen Rechner, rot im Browser. Wer die eine benutzt, braucht über die andere nichts zu wissen.
| Für wen | eine Person an ihrem Rechner | mehrere, die auf dasselbe Archiv sehen – Kanzlei, Verein, Firma |
| Zugang | Programmfenster | Browser, von jedem Arbeitsplatz aus |
| Loslegen | Erste Schritte – mit Bildern von der Installation bis zum ersten durchsuchbaren Archiv | MailBurg Server – Einrichtung, Betrieb und Wartung an einer Stelle |
| Und weiter | Die Oberfläche · Postfächer einrichten · Sichern · Unter Windows | Windows Server · Linux · Zugänge und Rechte · Der Entwurf dahinter |
Die Unterschiede im Einzelnen – was die rote Fassung nicht kann und warum – stehen unter Blau oder rot.
Es gibt gute Programme für diese Aufgabe, aber sie haben Grenzen: Sie laufen nur unter Windows, sie beschränken die Zahl der Konten, oder sie sperren das Archiv in ein Format, aus dem man es ohne das Programm nicht wieder herausbekommt.
MailBurg macht es andersherum:
- Keine Beschränkung der Kontenzahl. Dreißig Adressen sind vorgesehen, mehr ist kein Problem.
- Ihr Archiv, Ihr Format. Jede Mail liegt als einzelne
.eml-Datei. Auch ohne MailBurg kommen Sie an jede einzelne heran. - Der Suchindex ist wegwerfbar. Er lässt sich jederzeit vollständig aus dem Archiv neu erzeugen und muss deshalb nicht gesichert werden.
- Verschlüsseln, wenn die Post das Haus verlässt. Wahlweise beim Anlegen: Mails und Protokoll wandern dann verschlüsselt auf die Platte, samt verdeckter Dateinamen. Dazu ein Notschlüssel zum Ausdrucken – ein Archiv überdauert Jahrzehnte, ein Passwort im Kopf nicht.
Fassung 1.8.2, im Alltag im Einsatz. Archivformat, IMAP-Abruf, Suche samt
Suchordnern, Oberfläche, Texterkennung für eingescannte PDF, Sicherung und der
regelmäßige Abruf im Hintergrund stehen und werden täglich benutzt – unter
Linux mit einem Bestand von rund 68.000 Mails, unter Windows mit der fertigen
MailBurg.exe.
Gmail ist seit dem 22.09.2026 an echten Konten erprobt – drei Postfächer nebeneinander, mit App-Passwort. Dabei zeigte sich auch, dass MailBurg Mehrfachablage richtig rechnet: 189 Nachrichten trugen mehrere Etiketten und liegen trotzdem genau einmal auf der Platte.
OAuth2 ist gebaut, aber weiterhin nur gegen einen nachgebauten Anbieter geprüft: Bei einem echten Microsoft- oder Google-Konto hat sich damit noch niemand angemeldet. Bei Google braucht man es auch nicht – dort genügt ein App-Passwort. Bei Microsoft dagegen führt kein anderer Weg hin: Die Anmeldung mit Passwort ist abgeschaltet, App-Passwörter gibt es nicht mehr. Wer ein Outlook- oder Microsoft-365-Konto hat und mittesten möchte, ist sehr willkommen.
Verschlüsselte Archive gibt es seit dem 31.08.2026 – gebaut und getestet, aber im Alltag noch nicht erprobt. Siehe docs/verschluesselung.md.
JMAP ist seit dem 01.09.2026 dabei und am 03.09.2026 zum ersten Mal gegen einen echten Server gelaufen: rund 5.000 Nachrichten aus einem selbst betriebenen Stalwart, 200 davon in unter fünf Sekunden. Bei Fastmail hat es noch niemand ausprobiert.
Für Debian 13 und GuideOS hängt ein fertiges .deb an jedem Release, für
Windows die MailBurg.exe, für alles andere ein AppImage. Was noch fehlt:
Outlook-.pst, das .dmg und der erprobte Betrieb unter macOS. Die Liste steht in
TODO.md.
Ein Archiv ist ein Verzeichnis:
MeinArchiv/
├── archive.json Kennung, Betriebsart, Fristenregel
├── mail/ die Mails, nach Monat sortiert
│ └── 2026/08/3f/3f8a9c1e….eml.zst
└── meta/ das Journal mit der Hash-Kette
Der Dateiname jeder Mail ist der SHA-256 ihres Inhalts. Das hat zwei Folgen: Dieselbe Mail zweimal einzulesen erzeugt keine zweite Datei, und eine beschädigte Datei fällt beim Lesen von selbst auf.
Die Mail wird dabei bytegenau abgelegt – keine geglätteten Zeilenenden, keine reparierten Kopfzeilen. Nur so bleibt eine DKIM-Signatur später noch prüfbar.
Beim Anlegen entscheiden Sie, worum es geht:
Privatarchiv. Keine Fristen, kein Ballast, löschen jederzeit. Das entspricht der Rechtslage: Wer ausschließlich eigene Mails archiviert, fällt unter die Haushaltsausnahme der DSGVO und unterliegt ihr gar nicht.
Geschäftsarchiv. Jeder Vorgang wandert in eine Hash-Kette – jeder Eintrag trägt den Hash seines Vorgängers. Wer nachträglich etwas ändert, zerreißt die Kette sichtbar. Gelöscht wird nur über Grabsteine: Der Inhalt verschwindet, der Vorgang bleibt protokolliert. So lassen sich das Recht auf Löschung und die Unveränderbarkeit gleichzeitig erfüllen. Aufbewahrungsfristen für Deutschland, Österreich und die Schweiz bremsen zu frühes Löschen.
Wichtig: MailBurg unterstützt einen revisionssicheren Betrieb, es stellt ihn nicht her. Dazu gehören eine Verfahrensdokumentation und geregelte Abläufe. Eine Software allein kann das nicht leisten. Mehr dazu in RECHTLICHES.md.
Die Suche ist deutsch und läuft über zwei Indizes:
rechnung irgendwo in Text, Betreff oder Anhang
von:müller rechnung beides muss zutreffen
betreff:"offene posten" mehrere Wörter in Anführungszeichen
hat:anhang typ:pdf jahr:2025
konto:firma ordner:Gesendet
-werbung schließt Treffer aus
betreff:rechnung findet auch Schlussrechnung. Das ist kein Sonderwunsch,
sondern im Deutschen der Normalfall – wir schreiben zusammen. Dafür gibt es
neben dem Wortindex einen zweiten über Dreizeichengruppen.
Auch die Schreibweise darf abweichen: von:muller und von:mueller finden
beide „Müller", bahnhofstrasse findet „Bahnhofstraße". Groß- und
Kleinschreibung spielt nirgends eine Rolle.
Wie schnell das ist, an einem echten Bestand gemessen: 68.000 Mails, 19,5 GB Rohdaten, knapp 1 GB Suchindex. Eine Suche aus dem Fenster – Treffer zählen und die erste Seite holen – braucht 2 bis 61 Millisekunden, auch wenn 39.000 Nachrichten passen. Wer alle Treffer auf einmal anfordert, wartet im Höchstfall 0,4 Sekunden.
Der Suchindex liegt dabei auf der internen Platte, das Archiv selbst auf einer externen: Gelesen wird von dort erst, wenn Sie eine Nachricht öffnen.
Aus IMAP-Postfächern – so gut wie überall –, aus Thunderbird-Profilen,
Maildir-Verzeichnissen (so legt Evolution seine lokalen Ordner ab),
MBOX-Dateien und Ordnern voller .eml-Dateien – auch verschachtelt, und
.emlx von Apple Mail zählt mit. Das ist der Weg für alles, was ein anderes
Programm einmal einzeln exportiert hat. Für alles von der Platte gibt es
Post → Lokale Mailordner einlesen …; der Dialog schlägt vor, was er auf dem
Rechner findet – klassisch installiert wie auch als Flatpak oder Snap – und
zeigt vor dem Start, was er dort erkannt hat. Und seit Kurzem über
JMAP, den Nachfolger von IMAP: Er beantwortet in einer
Anfrage, was seit dem letzten Abruf dazugekommen ist, statt es aus
Nachrichtennummern zu erraten. Können bisher Fastmail, Stalwart und Cyrus –
Gmail, Outlook, GMX, Web.de und Proton nicht.
Der Abrufweg gehört zum einzelnen Postfach: ein Konto über JMAP und die übrigen weiter über IMAP ist vorgesehen.
Ging eine Sache mehrmals hin und her, zeigt MailBurg zu jeder Nachricht den ganzen Gesprächsverlauf – zusammengehalten über die Kopfzeilen, die jedes Mailprogramm mitführt, nicht über den Betreff. Der wechselt unterwegs, und zwei Mails mit „Rechnung" im Betreff haben meistens nichts miteinander zu tun.
Eine Suche, die Sie immer wieder brauchen, bekommt einen Namen und steht danach
links im Baum: Suchordner, wie Evolution sie kennt und Thunderbird als
„virtuelle Ordner". Sie enthalten keine Post – sie zeigen, was gerade auf sie
passt, und sind damit immer aktuell. Wer bisher lokale Ordner zum Einsortieren
benutzt hat, arbeitet hier andersherum: Nicht die Post wird bewegt, sondern die
Frage gestellt. Auch auf der Kommandozeile: mailburg suchordner.
Ein Archiv, aus dem nichts wieder herauskommt, wäre ein Grab. Eine einzelne
Nachricht geht über die rechte Maustaste zurück – ins Mailprogramm, in ein
beliebiges Postfach oder als .eml auf die Platte.
Für ganze Postfächer gibt es Post → Ins Dateisystem zurückspielen …
beziehungsweise mailburg zurueckspielen: als Maildir (bytegenau, mit
Lesezustand), als MBOX (das Format von Thunderbirds lokalen Ordnern), als
einzelne .eml – oder über IMAP zurück in ein Postfach, auch in ein
anderes als das, aus dem die Post stammt.
Das Archiv bleibt dabei unverändert, und zweimal zurückspielen schreibt
nichts doppelt: auf der Platte erkennt MailBurg seine eigenen Dateien am
Namen, im Postfach vergleicht es die Message-ID mit dem, was dort schon
liegt. Siehe docs/zurueckspielen.md.
Ubuntu 24.04, Linux Mint 22, Fedora, Arch, openSUSE: das AppImage. Eine Datei, ausführbar machen, starten. Kein Python, keine Paketverwaltung.
chmod +x MailBurg-x86_64.AppImage
./MailBurg-x86_64.AppImageEs hängt an jedem Release. Legen Sie es an einen festen Platz, bevor Sie den regelmäßigen Abruf einrichten – der merkt sich den Ort der Datei.
Nicht auf Ubuntu 22.04, Linux Mint 21 oder Debian 12. Diesen Systemen fehlt beides: ein SQLite, das MailBurgs Suchindex anlegen kann (nachgemessen am 16.09.2026: 3.37 und 3.40, gebraucht wird ab 3.45), und die Systembibliotheken, an denen das AppImage hängt. MailBurg läuft dort nicht – es sagt das beim ersten Archiv auch selbst, statt abzustürzen.
Debian 13 und GuideOS: Dort ist das .deb der bessere Weg, weil es die
Oberfläche aus der Distribution nimmt und damit deren Sicherheitsupdates
bekommt.
sudo apt install ./mailburg_*_all.debNur dort. Ubuntu, Linux Mint, Pop!_OS und Zorin führen PySide6 nicht in ihren Paketquellen.
aptinstalliert MailBurg dort zwar, aber ohne Oberfläche – Sie bekommen einen Menüeintrag, hinter dem kein Fenster steckt. Nehmen Sie auf diesen Systemen das AppImage.
Es zieht die Oberfläche, den Schlüsselbund und die PDF-Werkzeuge aus der
Distribution nach – MailBurg bringt kein eigenes Qt mit, damit
Sicherheitsupdates über apt ankommen. Danach steht MailBurg im
Anwendungsmenü und mailburg in der Eingabeaufforderung.
Alle anderen Systeme. Voraussetzung ist Python 3.11 oder neuer; weitere Pakete braucht der Kern nicht.
git clone https://github.com/Stephan-Lefty/MailBurg.git
cd MailBurg
./install.shDas richtet MailBurg im Benutzerverzeichnis ein – ohne Administratorrechte, ohne
etwas am System zu ändern – und legt den Befehl mailburg an. Unter Windows
übernimmt das .\install.ps1, siehe docs/windows.md.
./install.sh --entfernen baut alles wieder ab; das Archiv bleibt dabei
unangetastet.
Wer lieber selbst bestimmt, wohin es geht, nimmt pip install ".[alles]" – oder
lässt die Installation ganz weg und ruft python3 -m mailburg direkt im
Quellverzeichnis auf.
Wenn Sie einzelne Zusätze wählen: Der Kern kommt ohne Fremdpakete aus, aber er kann dann auch nur das Nötigste. Was wozu gehört:
| Zusatz | wofür | ohne ihn |
|---|---|---|
oberflaeche |
das Fenster, PySide6 | nur die Kommandozeile |
imap |
Postfächer abrufen, Passwörter im Schlüsselbund | kein IMAP |
anhaenge |
Text aus PDF und Büroformaten | Anhänge bleiben unauffindbar |
packen |
kleinere Sicherungen (Zstandard) | LZMA, langsamer |
verschluesselung |
verschlüsselte Archive | nur unverschlüsselt |
pip install ".[oberflaeche]" genügt also nicht, um Postfächer abzurufen –
dafür braucht es imap dazu. Am einfachsten ist ".[alles]".
# Archiv anlegen
mailburg anlegen ~/Archiv --modus privat
# Thunderbird-Profil einlesen (findet die Ordnerstruktur von selbst)
mailburg importieren ~/Archiv ~/.thunderbird/xxxx.default --konto privat
# Suchen
mailburg suchen ~/Archiv betreff:rechnung jahr:2025
# Nachsehen, was drin ist
mailburg info ~/Archiv
# Hash-Kette und Ablage prüfen
mailburg pruefen ~/Archivmailburg suchhilfe erklärt die Suchsprache.
Als Quelle taugt ein Thunderbird-Profil, ein Maildir-Verzeichnis, eine einzelne
MBOX-Datei oder ein Ordner voller .eml-Dateien. Bei einem Thunderbird-Profil
werden alle Konten und Ordner mitsamt ihrer Verschachtelung übernommen.
Papierkorb, Spamverdacht und Entwürfe bleiben dabei draußen – wie beim
Abruf aus einem Postfach. Was übergangen wurde, steht am Ende des Laufs;
--alles nimmt es mit.
Für die laufende Archivierung holt MailBurg die Post direkt aus dem Postfach:
# Postfach einrichten – das Passwort wird abgefragt, nicht als Argument übergeben
mailburg konten hinzufuegen Firma \
--server imap.example.org --benutzer post@example.org
# Nachsehen, was eingerichtet ist und welche Ordner archiviert würden
mailburg konten liste
mailburg konten pruefen Firma
# Abrufen – beim ersten Mal alles, danach nur noch das Neue
mailburg abrufen ~/Archiv
mailburg abrufen ~/Archiv --konto FirmaDer Abruf eignet sich für die Zeitsteuerung: mailburg abrufen ~/Archiv in
einem nächtlichen Cron-Auftrag genügt.
Das Postfach bleibt unangetastet. MailBurg öffnet jeden Ordner nur lesend
und holt die Mails mit BODY.PEEK[]. Ungelesene Post ist hinterher immer noch
ungelesen – ein Archivprogramm, das das nicht einhält, ist unbrauchbar.
Passwörter stehen im Schlüsselbund des Betriebssystems, nie in einer
Konfigurationsdatei. Dafür wird das Paket keyring gebraucht; fehlt es, läuft
alles weiter, nur wird das Passwort bei jedem Abruf neu erfragt. In die
Kontenliste kommt es auch dann nicht.
Bei Gmail, GMX und Web.de genügt das Kennwort der Weboberfläche nicht – diese Anbieter verlangen für den Zugriff von außen ein eigenes App-Passwort. Bei Outlook und Microsoft 365 hilft auch das nicht mehr: Dort gibt es keine App-Passwörter, der Abruf geht nur noch per OAuth2. Die ist gebaut, aber nur gegen einen nachgebauten Anbieter geprüft – siehe Anmeldung per OAuth2.
Was übergangen wird: Papierkorb, Spamverdacht und Entwürfe. Der Anwender hat diese Post schon einmal aussortiert; sie ins Archiv zu holen, würde diese Entscheidung rückgängig machen. Bei Gmail bleibt zusätzlich »Alle Nachrichten« außen vor – dieser Ordner enthält sämtliche Mails ein zweites Mal.
Nur das Neue. Woher MailBurg weiß, wo es stehen geblieben ist, ist die einzige wirklich heikle Stelle daran: Der Höchststand wird nicht mitgeschrieben, sondern aus dem Archiv selbst abgelesen. Bricht ein Abruf mitten im Ordner ab, holt der nächste genau den Rest. Und eine einzelne Mail, an der sich MailBurg verschluckt hat, wird vorgemerkt und beim nächsten Lauf erneut angefordert – sonst fehlte sie für immer, ohne dass es je jemand bemerkte.
Ist wirklich alles im Archiv? Diese Frage beantwortet Post → Ist alles im
Archiv? … – oder mailburg abgleich auf der Kommandozeile. MailBurg fragt
dann jedes Postfach, welche Nachrichten dort älter als ein Stichtag sind, und
hält jede einzelne gegen das Archiv.
Das ist etwas anderes als mailburg pruefen: Die Prüfung sagt, ob das Archiv
heil ist. Ob darin alles liegt, kann sie nicht wissen – ein Archiv kann
nicht prüfen, was es nie gesehen hat.
Der Befund lautet nur dann »alle im Archiv«, wenn es zweifelsfrei stimmt. Ein Postfach, das nicht antwortet, oder ein Server, der seine Nachrichtennummern neu vergeben hat, hält ihn offen – auch wenn alle übrigen vollständig sind. Wer aufräumt, weil neun von zehn Postfächern in Ordnung waren, verliert die Post des zehnten an beiden Stellen.
Der ganze Ablauf steht in Postfach entlasten.
Für den Fall, dass nicht nur eine Person an das Archiv soll – eine Kanzlei, ein Verein, eine Firma –, lässt sich MailBurg als Dienst betreiben. Dann liegt das Archiv auf einem Rechner, der läuft, und alle anderen erreichen es über den Browser: anmelden, suchen, lesen, Anhänge herunterladen.
Eine Nachricht geöffnet – mit Anhang, »Im Mailprogramm öffnen« und »Als Datei speichern«:
Hell und dunkel stellt jeder Zugang für sich ein – oben rechts, oder unter Einstellungen. Die Vorgabe richtet sich nach dem Betriebssystem.
Wer was sehen darf, steht im Archiv selbst, nicht beim Dienst. Ein Zugang kann auf bestimmte Postfächer beschränkt sein, und die Einschränkung wirkt in der Suchabfrage: Wer die Buchhaltung nicht sehen darf, bekommt auch keine Trefferzahl, aus der er auf sie schließen könnte.
Gelesen wird nur. Einstufen, Löschen und das Zurücklegen ins Postfach bleiben der Kommandozeile und dem Fenster vorbehalten – das sind die Vorgänge, die ins Journal schreiben.
In der Vorgabe lauscht der Dienst nur auf dem eigenen Rechner. Auf einem
Server ohne Bildschirm sieht man ihn deshalb über einen SSH-Tunnel
(ssh -L 8383:127.0.0.1:8383 benutzer@server), im Firmennetz über einen
Reverse Proxy mit TLS. Ein Archivdienst, der beim ersten Start ungefragt im
ganzen Netz steht, wäre eine böse Überraschung.
Es gibt dasselbe Programm in zwei Gestalten. Erkennbar sind sie am Wappen: blau am Arbeitsplatz, rot im Browser.
Beide arbeiten am selben Archivformat. Ein Archiv, das am Arbeitsplatz entstanden ist, lässt sich auf einen Server kopieren und umgekehrt – es ist ein gewöhnlicher Ordner.
Nicht beides gleichzeitig am selben Archiv. Zwei Programme, die darin schreiben, reißen die Hash-Kette; wer den Serverbetrieb wählt, schaltet den Abruf am Arbeitsplatz ab. Welche Gestalt die richtige ist, entscheidet also weniger der Funktionsumfang als die Frage, wie viele Menschen hineinsehen.
Der Weg vom leeren Rechner bis dahin:
- Das Archiv im Browser einrichten – Debian und andere Linux-Systeme, Dienst über systemd. Durchgespielt.
- MailBurg auf einem Windows Server – mit Einrichtungsfenster statt abgetippter Befehle. Am 02.10.2026 auf Windows Server 2025 durchgespielt, einschließlich Neustart.
- Der Entwurf dahinter – welche Entscheidungen warum so gefallen sind.
Ein Archiv in einem synchronisierten Ordner funktioniert, weil die Ablage darauf ausgelegt ist: Jede Mail ist eine eigene Datei, und alte Monatsordner ändern sich nie wieder – synchronisiert werden sie also genau einmal.
Der Suchindex liegt bewusst nicht im Archiv, sondern lokal im
Anwendungsverzeichnis. SQLite auf einem synchronisierten Laufwerk geht früher
oder später kaputt; das ist der häufigste Weg, sich ein Archiv zu zerschießen.
Verloren geht dabei nichts – der Index entsteht mit neuaufbau in Minuten neu.
Solange ein Rechner das Archiv geöffnet hat, liegt eine Sperrdatei darin. Zwei Rechner, die gleichzeitig hineinschreiben, würden sonst einen Synchronisationskonflikt erzeugen, den niemand mehr auflösen kann.
python3 tests/lauf.pyDas ist unittest discover mit einem sauberen Schluss: Der Läufer
beendet den Prozess selbst, bevor Python seine Module abräumt und Qt
dabei über die eigenen Füße fällt. Ohne ihn bricht die Suite auf
manchen Systemen nach dem letzten Test ab, obwohl alle Tests grün
gemeldet haben. Der Rückgabewert ist derselbe wie sonst: 0 bei Erfolg,
1 bei jedem Fehlschlag.
Wer Fehler sucht, die erst beim Aufräumen auftreten, nimmt den gewöhnlichen Weg:
python3 -m unittest discover -s tests -vMIT – siehe LICENSE.




