nicht angezeigte und doppelt vorhandene Emails nach Umzug auf neuen Linux Rechner

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

    • Thunderbird-Version: 52.9.1 64 Bit
    • Betriebssystem + Version: OpenSuSE 15
    • Kontenart (POP / IMAP): POP
    • Postfach-Anbieter (z.B. GMX): t-online
    • Eingesetzte Antiviren-Software: n/a
    • Firewall (Betriebssystem-intern/Externe Software): intern
    • Router-Modellbezeichnung (bei Sende-Problemen): ist kein Sende-Problem


    Hallo !


    Kürzlich bin ich von einem alten Rechner mit Ubuntu 16.04 auf einen neuen

    Rechner mit OpenSuSE 15 umgezogen. Thunderbird hat bei beiden Betriebssystemen

    die Version 52.9.1 (64 Bit). Bei dem Umzug habe ich das komplette Verzeichnis

    ~/.thunderbird kopiert.


    Jetzt tritt folgendes Problem auf: machen Ordner sind leer, obwohl Emails drin

    sein sollten, manche Emails werden mehrfach angezeigt, beispielsweise sind im

    Ordner "gesendet" einige (nicht alle) Emails, die ich vom neuen Rechner aus

    gesendet habe, doppelt vorhanden. Im Lexikon habe ich die Anleitung

    "Index-Datei reparieren" gefunden, die aber nicht geholfen hat:


    - Ich habe bei einigen Ordnern die Funktion Eigenschaften-->Reparieren

    probiert, was die Probleme aber nicht behoben hat.


    - Dann habe ich im Verzeichnis .thunderbird alle .msf-Dateien gelöscht. Sie sind

    beim Neustart von Thunderbird neu erstellt worden, aber die Probleme sind

    geblieben.


    Außerdem habe ich bei einem als leer angezeigten Ordner, der nicht leer sein

    sollte, die Email-Datei und die .msf-Datei angeschaut. Beide waren nicht leer

    (einige kB Größe, Inhalt läßt sich mit emacs anzeigen).


    Wie kann ich das reparieren? (Den alte Rechner mit dem funktionierenden

    Thunderbird gibts noch.)


    Viele Grüße, Wolfgang

  • Probiere mal folgendes:


    1. Thunderbird beenden
    2. mbox-Datei (in diesem Beispiel INBOX) außerhalb des Profilordners kopieren
    3. kopierte Datei in einem Editor öffne, der reguläre Ausdrücke unterstützt, wie der vim.
    4. suche nach ^X-Mozilla-Status: .*$, ersetze durch X-Mozilla-Status: 0000, speichern
    5. geänderte Datei umbenennen, zum Beispiel in Posteingang und in den Profilordner kopieren
    6. Thunderbird starten und ggf. mit der Erweiterung Remove Duplicate Messages (Alternate) doppelte Nachrichten im wiederhergestellten Ordner löschen


    Alternativ kann auch die Erweiterung Recover deleted messages versucht werden.

  • Vielen Dank für den Tip, in der Ecke war das Problem tatsächlich.


    Bei Vergleichen zwischen dem aktellen, fehlerhaften Datenbestand und einer älteren, korrekten Sicherheitskopie sind mir Unterschiede in der Zeile X-MOZILLA-STATUS= aufgefallen. Etwas Sucherei ergab, daß der dortige Wert eine vierstellige Hexzahl ist, die den Status der Email angibt. Es handelt sich um die Summe konstanter Flags, deren Werte hier erklärt werden:


    https://developer.mozilla.org/…erence/nsMsgMessagesFlags


    und der entsprechende Quelltext steht hier:


    https://dxr.mozilla.org/mozill…ublic/nsMsgMessageFlags.h


    In den fehlenden Emails war das Bit für "expunged" gesetzt, was die Bedeutung "zum löschen vorbereitet" hat.


    Ganz korrekt wäre, in jedem Wert nur das Bit für "Expunged 0x00000008" zu löschen, das war mir aber zu viel Arbeit. Stattdessen habe ich dieses sed-Skript


    for s in $(ls)

    do

    echo $s

    sed -i 's/X-Mozilla-Status: .*/X-Mozilla-Status: 0001/g' $s

    done


    manuell in allen Unterverzeichnissen des Emailordners angewendet. War eine Menge Arbeit, weil mein Email-Bestand knapp 6 GB umfaßt, aber seitdem scheint alles in Ordnung zu sein.


    Wie es zu diesem Problem gekommen ist, ist aber noch unklar. Ich habe den Verdacht, daß bei der Suche nach Zeichenketten in Emails deren Status verändert wird. Zumindest waren nach der letzten Suche einige ältere Emails plötzlich als ungelesen markiert. Das ist mir auch früher schon mal aufgefallen.


    Beste Grüße, Wolfgang