Skip to content

MailBurg 1.7.8

Choose a tag to compare

@Stephan-Lefty Stephan-Lefty released this 06 Oct 10:22
· 47 commits to main since this release

Diese Fassung kommt fast vollständig aus dem ersten echten Serverbetrieb:
Am 5. und 6. Oktober 2026 ist ein Geschäftsarchiv mit 70.133 Mails auf
einen Windows Server 2025 gezogen. Was dabei aufgelaufen ist, steht hier.

Der Fehler, der sofort herausmusste

Der Abruf im Dienst ist nie gelaufen – seit es ihn gibt.

In server/abruf.py stand for k in Kontenliste(), und Kontenliste
ist kein Behälter, sondern hat einen (.konten). Das wirft in der
ersten Zeile jedes Durchgangs:

MailBurg-Abruf: Abruf fehlgeschlagen: 'Kontenliste' object is not iterable

Wie es aussah, ist dabei das Eigentliche. Der Fehler landet im weiten
except der Abrufschleife – das dort mit gutem Grund steht, damit ein
klemmendes Postfach den Faden nicht beendet – und von dort ins
Ereignisprotokoll. Der Dienst lief weiter, die Statusseite meldete
"abruf":"alle 30 Minuten", und das Archiv bekam nichts dazu.

Wer MailBurg als Dienst betreibt, sollte diese Fassung einspielen.
Ob es Sie betrifft, sagt ein Blick ins Ereignisprotokoll:

Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='MailBurgServer'} -MaxEvents 20 |
    Format-List TimeCreated, Message

Steht dort die Zeile oben, hat Ihr Dienst nie Post geholt. Das Archiv
ist unversehrt – es fehlt nur alles, was seitdem hätte dazukommen
sollen. Nach dem Update holt der erste Lauf es nach.

Dass kein Test das gefunden hat, hat einen Grund, der hierher gehört:
Es gab welche für Takt, Pause, ein klemmendes Postfach und dafür, dass
die Schleife einen Fehler überlebt – also für alles um die Funktion
herum, nie für den Weg hinein. Jetzt läuft einer mit einer echten
Kontenliste durch genau diese Zeile.

Ein Fenster für die Servereinrichtung

Bis hierher ging das nur über die Kommandozeile: zehn Schritte, acht
davon ein abgetippter PowerShell-Befehl. Startete der Dienst danach
nicht, stand der Grund in einem Ereignisprotokoll, das man mit einem
weiteren Befehl durchsucht – man musste nur wissen, dass es das gibt.

mailburg-server-einrichten zeigt stattdessen eine Prüfliste:
Betriebssystem, Python, Pakete, Rechte, Archiv, Zugänge, Dienst,
Tresor, Abruf, Weboberfläche. Wo etwas fehlt, steht der Knopf daneben,
der es behebt. Unter Windows auch als eigene Datei
MailBurg-Server-Einrichten.exe, dieselbe Liste als Text über
--pruefen.

Die Postfachspalte lässt sich zuschieben

Auf einem 5:4-Bildschirm lagen die Postfächer quer über der
Trefferliste – die Trefferzahlen standen mitten in den Betreffzeilen.

Ursache: Ein Grid-Feld wird nie schmaler als sein längstes unteilbares
Wort, und eine Mailadresse ist für den Browser ein Wort. Behoben, und
dazu gleich das, was im Betrieb gefehlt hat: Der Knopf Postfächer
neben der Trefferzahl schiebt die Spalte auf und zu, der Zustand bleibt
gespeichert. Zugeschoben ist die Vorgabe – gesucht wird ohnehin
über alle Postfächer, und wer gezielt in einem sucht, nimmt die
ausführliche Suche.

Zwei Befehle, die beim Umzug fehlten

mailburg tresor entfernen KENNUNG nimmt einen Eintrag aus dem Tresor.
Das fehlte, weil ein Tresor vom Arbeitsplatz alle dortigen
Anmeldungen mitbringt – die Kontenliste lässt sich vorher filtern, der
Tresor nicht, denn er kennt keine Archive. Jeder Eintrag ist einzeln
verschlüsselt: Herausnehmen lässt die übrigen lesbar und braucht keinen
neuen Hauptschlüssel.

mailburg zugaenge ARCHIV anzeigename NAME "Vor Nachname" ändert den
Klarnamen. Bisher ging das nur im Einrichtungsfenster – also an dem
Ort, den es auf einem Server gerade nicht gibt.

Weiteres aus dem Umzug

  • Die gebündelten pypdf-Meldungen bündeln jetzt wirklich. Gezählt wurde
    die fertige Meldung, und pypdf setzt in fast jede Zahlen ein – also
    war jede ihr eigener Eintrag.
  • Fehlt fonttools, sagt MailBurg das mit dem Befehl daneben. Ohne das
    Paket kommt pypdf an die Zeichentabelle eingebetteter Schriften nicht
    heran, und das trifft gewöhnliche Geschäftspost.
  • Unter Windows wird eine verwaiste Sperrdatei jetzt weggeräumt.
    os.kill(pid, 0) ist dort kein Anklopfen; der Weg geht jetzt über
    OpenProcess.
  • Die Anleitungen sagen, dass der erkannte Text aus Scans beim Umzug
    mitkopiert werden muss – er entsteht nicht beim Indexbauen.

Gemessenes statt Geschätztes

An einem echten Geschäftsarchiv mit 70.133 Mails und vielen
PDF-Rechnungen, auf einem Windows Server 2025 ohne poppler:

Indexlauf über pypdf 6075 s (101 Minuten, 11,6 Mails je Sekunde)
Suchindex danach 1,07 GB
Rohdaten im Archiv 19,2 GB

Mit pdftotext aus poppler ist der Indexlauf ein Bruchteil davon.

2203 Tests, CI grün.