exaktes Dateiformat für mbox-Dateien

  • Um Rückfragen vorzubeugen, bitten wir um folgende Angaben:

    • Thunderbird-Version: 60.3.0
    • Betriebssystem + Version: Windows 10 Pro 1803
    • Kontenart (POP / IMAP): IMAP
    • Postfach-Anbieter (z.B. GMX): eigener IMAP-Server
    • Eingesetzte Antiviren-Software: Windows Defender
    • Firewall (Betriebssystem-intern/Externe Software): Windows
    • Router-Modellbezeichnung (bei Sende-Problemen): -


    Ich habe von verschiedenen überlappenden Backups 469 mbox-Dateien von Thunderbird mit insgesamt 287000 Mails die ich deduplizieren möchte. Diese konnte ich mit dem ImportExportTools-Addon importieren, aber sowohl Deduplizieren als auch Kopieren auf einen IMAP-Server um sie mit einem anderen Client oder direkt auf dem Server zu sortieren führt zu einer Fehlermeldung oder zum Programmabsturz. Bei der doch relativ großen Anzahl ist es für mich zu einem großen Teil auch nachvollziehbar dass es eben Grenzen gibt.


    Ich würde die Mails daher gerne außerhalb von Thunderbird deduplizieren, benötige sie dafür aber als einzelne Dateien. Mein erster Gedanke war, dass Thunderbird jetzt ja auch Maildir als Speicherformat unterstützt (ergibt dann eine Datei pro Mail) und ich einfach konvertieren kann. Aber auch das wurde mit der Fehlermeldung "... fehlgeschlagen" abgebrochen.


    Die mbox-Dateien lassen sich aber durch den eigentlich sehr einfachen Aufbau auch direkt leicht in einzelne Dateien (1 pro Mail) zerlegen. Vom mbox-Format gibt es mehrere Varianten und Thunderbird soll die mboxrd-Variante verwenden (mboxrd denke ich verstanden zu haben), aber leicht andere Quoting-Rules. Leider finde ich genau zu diesen kleinen Unterschieden zum normalen mboxrd-Format nix.


    Kennt jemand die genauen Abweichungen von Thunderbird-mbox zu mboxrd oder kennt die Codestelle im Sourcecode an der mbox gelesen oder geschrieben wird?

  • Wenn man wirklich durch das Unterholz der Fileformate krabbeln will, dann wäre Wotsit der Einstieg


    http://devel.archefire.org/mir…t.org/listd848.html?fc=11


    ODER


    http://justsolve.archiveteam.org/wiki/Sources


    das ist aber die russische Lösung


    DENN


    Meist führt ein Linuxsystem als Internetserver mit funktionierenden Onbord-Mitteln oder Linux-Tool schneller und dauerhafter zum Erfolg als die gleiche Aufgabe über den Support oder ext. Konvertierung unter Windows zu erreichen.


    Wenn man sich die Geschichte von Windows ansieht, dann kommt man zu dem Resultat, daß mit jeder Generation seit Windows 3,1 ein Drittel der Software wirklich 1:1 übernommen werden konnte, ein Drittel mit erheblichen Einschränkungen läuft und ein Drittel garnicht. Aus den letzten zwei Dritteln und Tonnen von vollgeheulten Tempos hat Microsoft seine Einnahmen generiert.


    Unter Linux gibt es seit man denken kann ein Onboard-Emailsystem wahlweise mit IMAP und POP was im wesentlichen bis heute so geblieben ist und alle nativen Anwendungen greifen darauf zurück, es sei denn die Anwendungen haben durch die Migration von Windows die Seuche ins Linux eingeschleppt.


    Unter Linux gibt es also bereits Scripte, die nahezu jedes externe Mbox-Format ins eigene Mbox-Format konvertieren und von dort aus kann man es mit Imap wieder in die bunte Windowswelt mit Outlock+Samba konvertieren und alle werden glücklich.


    Deswegen haben viele KMU's zwei Linuxserver - einer Läuft, der andere ist der Fallback, der allen Internetkram samt Firewall, Proxy und Email/FTP behandelt und alles dahinter samt Windows 7 oder XP vor Seuchen aller Art schützt.

    --

    • Thunderbird-Version: 60.3.0 mit IMAP
    • WIndows 7 64bit
    • Hoster: Diverse

    Einmal editiert, zuletzt von Chartwalker ()

  • Als Ideen:


    • Da du die E-Mails importieren konntest, könntest du einen Versuch mit Mailstore Home wagen, um die E-Mails auf deinen Server zu bekommen. Dieses Programm kann angeblich deutliche besser damit umgehen, eine große Anzahl E-Mails auf einen IMAP-Server zu kopieren als der Thunderbird dies kann.
    • Wenn du einzelnen Dateien benötigst um darin selbst nach den Duplikaten zu suchen, ließe sich das vielleicht auch über einen Ex- und Reimport als *.eml erreichen.
    • Zur Deduplikation bzw. dem Finden der Duplikate: Die Erweiterung RemoveDuplicateMessages kann dies in einem gewissen Rahmen. Ich habe diese Erweiterung selbst nie benutzt. Mir ist daher nicht bekannt, wie zuverlässig sie funktioniert und ob sie Duplikate auch über mehrere Ordner hinweg finden kann. Anschauen würde ich sie mir.
  • Erstmal vielen Dank für die Tips.

    das ist aber die russische Lösung

    Das wäre mir relativ sympathisch, nur leider finde ich dort keine Details exakt zum Thunderbird-Mbox-Format.

    Meist führt ein Linuxsystem als Internetserver mit funktionierenden Onbord-Mitteln oder Linux-Tool schneller und dauerhafter zum Erfolg als die gleiche Aufgabe über den Support oder ext. Konvertierung unter Windows zu erreichen.

    Das ist auch ungefähr mein Ansatz. Nur brauche ich dazu die einzelnen Mails, dann kann ich die auf File-Ebene mit einfachen Tools deduplizieren und entweder über den LDA oder durch direktes Kopieren ins Maildir auf dem Server verfügbar machen.

    Da du die E-Mails importieren konntest, könntest du einen Versuch mit Mailstore Home wagen, um die E-Mails auf deinen Server zu bekommen. Dieses Programm kann angeblich deutliche besser damit umgehen, eine große Anzahl E-Mails auf einen IMAP-Server zu kopieren als der Thunderbird dies kann.

    Die Beschreibung klingt ja nicht schlecht und die Home-Variante soll für private Zwecke kostenlos sein. Wenn andere Wege nicht funktionieren werde ich das ausprobieren.

    Wenn du einzelnen Dateien benötigst um darin selbst nach den Duplikaten zu suchen, ließe sich das vielleicht auch über einen Ex- und Reimport als *.eml erreichen.

    Das war noch eine gute Idee, ich hatte EML für Extended ML (oder so) gehalten und gar nicht erst probiert. Im Prinzip liefert das die gewünschten einzelnen Dateien pro Mail, ich schaffe es aber mit den ImportExportTools immer nur für einen Ordner.


    Da es 469 Ordner sind scheint das leider nicht praktikabel.

    Vielleicht kann ich aber auch einfach alle mbox-Dateien aneinanderhängen und so auf einmal importieren, dann müsste alles in einem Verzeichnis sein. Idealerweise würde der EML-Export dann das von mir gesuchte liefern.

    Zur Deduplikation bzw. dem Finden der Duplikate: Die Erweiterung RemoveDuplicateMessages kann dies in einem gewissen Rahmen. Ich habe diese Erweiterung selbst nie benutzt. Mir ist daher nicht bekannt, wie zuverlässig sie funktioniert und ob sie Duplikate auch über mehrere Ordner hinweg finden kann. Anschauen würde ich sie mir.

    Ich habe "Remove Duplicate Messages (Alternate)" das schien mir bisher auch recht brauchbar, funktioniert aber bei der großen Zahl von Mails einfach gar nicht.


    Zum mboxrd-Format von Thunderbird glaube ich durch Probieren folgendes herausgefunden zu haben:


    Das originale mboxrd-Format verwendet eine mit "From " (Leerzeichen am Ende beachten) beginnende Zeile als Anfangskennung einer Mail auf die der Mailtext gefolgt von einer Leerzeile folgt. Danach folgt die Anfangskennung für die nächste Mail u.s.w.In der Mail enthaltene Zeilen die mit "From " beginnen werden im originalen mboxrd-Format mit '>' gequotet. Thunderbird scheint hier einfach ein Leerzeichen zu verwenden.



    Zeilen, die in der Mail mit 1 bis N Quote-Zeichen gefolgt von "From " beginnen


    erhalten ein zusätzliches Quote-Zeichen. Bis auf das unterschiedliche Quote-Zeichen scheint hier kein Unterschied zwischen Thunderbird-mbox und mboxrd zu bestehen. Damit lässt sich das ganze auch wieder eindeutig umkehren.


    Kann jemand diese Kodierung bestätigen oder gibt es noch andere Besonderheiten/Ausnahmen zu beachten?

  • Codestelle im Sourcecode an der mbox gelesen oder geschrieben wird

    Einstiegspunkte: "Berkeley Mailbox stores" werden in der Klasse nsMsgBrkMBoxStore (header, implementation) verwaltet. Eventuell ebenfalls hilfreich: nsEmlxHelperUtils::ConvertToMboxRD aus dem Apple-Mail-Importer. Links sind jeweils für Thunderbird 60.