Apple Mail-Index: Neuaufbau und Probleme beim Neuaufbau beseitigen

SteinersMac

Neues Mitglied
Thread Starter
Dabei seit
01.10.2009
Beiträge
10
Reaktionspunkte
1
Mail-Index:
Apple Mail verwendet einen Index, der alle Mails inkl. Inhalt berücksichtigt und damit eine schnelle Suche nach Absender, Empfänger oder Inhalt ermöglicht.

Problem:
Beim Importieren des Mailbestands von einem User auf einem neuen PC kommt es vor, dass dieser Import nicht korrekt funktioniert. Auch bei einem manuellen Neuaufbau des Indexes, der manchmal zur Erhöhung der Suchgeschwindigkeit oder zum Verkleinern der Indexdatei empfohlen wird, könnte eine Störung stattfinden.
Der Fehler liegt vor, wenn beim Aufbau des neuen Mail-Indexes der Importvorgang abbricht und Mail beendet wird. Die Error-Diagnose, die man an Apple senden kann, enthält keine aufschlußreiche Information, warum der Import abgebrochen wurde.

Achtung: Der Neuaufbau des Mailindexes kann je nach Größe des Mailbestandes sehr lange dauern (200.000 Mails ca. 10 Minuten auf MacBookPro 2009)

Warnung: Die nachfolgenden Anweisungen und Empfehlungen sind möglichst ohne Verbindung ins Internet bzw. zum Mailserver durchzuführen, da ansonsten eine Sicherung veraltet wäre.

Mail-Index neu aufbauen:
Man kann den Neuaufbau des Mailindexes erzwingen, wenn man bei ausgeschaltetem Mailprogramm den persönlichen Index löscht oder verschiebt.
Er liegt normalerweise in "~\Library\Mail\Envelope Index". (Die Tilde '~' steht für das Homeverzeichnis des jeweiligen Users!)
Man kann aber auch ein SQL-Befehl absenden, der den Neuaufbau erzwingt, letztlich löscht auch dieser nur den Inhalt der Index-Datei (SQL-Datenbank):
Wenn Mail nicht gestartet ist gibt man im Terminal den Befehl
"sqlite3 ~/Library/Mail/Envelope\ Index vacuum index"
ein. Danach startet man Mail. Dieses beginnt damit, den Index neu zu erstellen.
Der Backslash mit nachfolgendem Leerzeichen ist übrigens dafür da, dass "Envelope Index" als ein Wort gelesen wird, ansonsten müsste man es im Anführungszeichen setzen. Mit SHIFT+ALT+7 gibt man den Backslash ein.

Weiterere Gründe für Cache-Neuaufbau:
Auch beim Upgrade von 10.4 auf 10.5 oder auf 10.6 können Fehler im alten Cache erhalten bleiben und deshalb manche Mails nicht gefunden werden. In diesem Fall ist der Neuaufbau des Mail-Indexes auch ohne Fehler beim Import zu empfehlen. Und auch wenn z.B. Mails zwar im Finder-Ordner zu finden sind und auch in der Mailstruktur in Mail angezeigt werden, aber bei Doppelklick kein Inhalt angezeigt wird, kann der Index (der ja letztlich die Verknüpfung zwischen dem Inhalt laut Index und der eigentlichen emlx-Datei herstellt) Schuld daran haben. Neuaufbau schadet nicht !

Problem vertieft:
Wenn einzelne Mails ein nicht korrektes Format haben, kann es trotzdem zum Abbruch des Neuaufbaus des Indexes kommen.

Finden der defekten Mails:In diesem Fall muss man herausfinden, welche Mails dieses Verhalten bewirken.

Vorgehen:
Dazu beobachtet man nach dem Starten des Neuaufbaus die Meldungen des Mail-Programms beim Import. Es werden alle Unterordner unter dem Pfad "~\Library\Mail" durchforstet. Leider ist mir die Reihenfolge nicht ganz klar, aber es sieht so aus, als ob zuerst die Ordner der höchsten Ebene analysiert werden, anschließend die zweite Ebene, dann die dritte und so weiter.
Jedenfalls muss man sich den Namen des Ordners merken, der zuletzt angezeigt wurde, bevor Mail abbricht.
Diesen Ordner kopiert man ausserhalb des Bereichs "~\Library\Mail" (z.B. auf dem Schreibtisch) in einen neuen Ordner, dessen Name so gewählt wird, dass herauslesbar ist, wo der Original-Ordner zu finden ist. Jetzt löscht man aus dem Originalordner die darin enthaltenen Mails (Extension "*.emlx"), damit bei einem weiteren Index-Neuaufbau-Vorgang kein Abbruch erfolgt. Sollten weitere Mails defekt sein, so wiederholt man diesen Vorgang, bis alle Ordner mit defekten Mails beiseite geschoben wurden. Die Original-Ordner (aber leer) sollten stehen bleiben, damit man sich leichter zurechtfindet und diese im Mail vorhanden bleiben. Ich erinnere: Die Original-Ordner mit Mails kopieren (zur Sicherheit) in "Kopierte Ordner", die Mails am Original-Platz aus den Ordnern löschen. P.S.: Es schadet nicht, auf ein geeignetes separates Medium erst mal alle Mails zu sichern.

Ist der Mailindex-Neuaufbau komplett durchgelaufen, startet auch Mail wieder ganz normal. Allerdings fehlen jetzt die verschobenen Mails aus den kopierten Ordnern.

Defekte Mails aussortieren:
Während Mail läuft kann man Teile eines kopierten Ordners (z.B. die erste Hälfte der Mails) wieder in den Original-Ordner kopieren (Nicht verschieben!). Man merkt sich dabei die Nummern der verwendeten Mails (von-bis). Im Mail wählt man links den betreffenden Ordner (der noch leer angezeigt wird) und klickt im Menü "Postfach" auf "Wiederherstellen".

Dabei wird der Inhalt des betreffenden Ordners gelesen und zum Index hinzugefügt. Die gefundenen Mails werden bis zum defekten Mail angezeigt.

Also im Prinzip wie beim Komplett-Neuaufbau, aber diesmal wird nur dieser Ordner berücksichtigt. Damit geht das ganze natürlich viel schneller. Stürzt Mail ab, dann hat man innerhalb der kopierten Mails mindestens eines erwischt, das defekt ist. Stürzt Mail nicht ab, so muss ein eventuell defektes Mail in der zweiten Hälfte enthalten sein.
Leider werden beim "Wiederherstellen" die Original-Mails neu nummeriert, so dass eine direkte Beziehung zu den kopierten Mails nicht so leicht herstellbar ist - warum wir uns die kopierten Mails merken sollten. Deshalb empfehle ich, alle Mails aus dem Original-Ordner wieder zu löschen und dann wieder eine Teilmenge aus den kopierten Ordner in den Originalordner zu kopieren und dann den Wiederherstellungsvorgang für diesen Ordner zu wiederholen. Auf diese Weise halbiert man Durchgang für Durchgang die Anzahl der verdächtigen Mails, bis man letztlich ein defektes Mail festlegen kann. Dieses erhält jetzt die Endung "*.emlx.txt", damit es nicht mehr als Mail importiert wird. Mails, die keinen Absturz herbeiführen, können in einem Unterordner der kopierten Ordner, z.B. mit dem Namen "OK" einstweilen bei Seite gelegt werden. Dadurch muss man in weiteren Durchgängen diese nicht mehr überprüfen.

Da weitere Mail defekt sein könnten, muss man auch die Probe machen, ob die "Nicht defekten"-Mails auch tatsächlich eingelesen werden können. Auf diese Weise werden also alle defekten Mails nach und nach aussortiert.
Hat man alle defekten Mails des ersten defekten Ordners fertig, setzt man den gleichen Vorgang nacheinander mit den weiteren defekten kopierten Ordnern fort.

Vorbereitungen zum Neuaufbau:
Wenn alle Ordner bereinigt wurden (d.h. die defekten Mails sind jetzt TXT-Dateien) kopiert man die bereinigten kopierten Ordner wieder an die Originalposition, verschiebt die bei Seite gelegten funktionierenden Mails aus dem OK-Ordner wieder an deren eigentliche Stelle und macht einen Komplett-Neuaufbau des Mailindexes durch die oben angegebene Methode. Diesmal dürften keine störenden Mails dabei sein und der Index wird sauber neu aufgebaut.

Ab sofort werden Mails innerhalb der Suchfunktion von Mail nicht nur nach Absender oder Empfänger gefunden sondern auch nach Inhalt.

Defekte Mails:
Die hoffentlich wenigen Mails, die defekt sind, können z.B. mit Textedit geöffnet und angesehen werden - weshalb ich die Endung TXT empfohlen habe. Man sieht halt das Mail im RAW-Format mit Mailheader und kann entscheiden, ob man es aufheben möchte oder ob es vernichtbar ist. Zur Not kopiert man das komplette Text-Mail in eine leere neue Mail, speichert es als Entwurf und verschiebt es anschließend in einen geeigneten Ordner im Mail.

Danach dürfte das System wieder sauber und etwas schneller arbeiten. :)

Hinweis: Auch Spotlight kann Probleme beim Suche nach Dateien und Mails machen. Deshalb ist es sinnvoll, auch die Einstellungen von Spotlight zu überprüfen bzw. dessen Index neu aufzubauen.
Siehe: Anleitung: Spotlight: Konfiguration überprüfen und Index bereinigen

Disclaimer:
Die obige Beschreibung und Anweisungen gelten speziell für eine bei uns auf diese Weise durchgeführte Bereinigung unter Mac OSX 10.5. Ich kann keine Garantie dafür übernehmen, ob das auch für andere Systeme gültig ist. Allerdings sind die Anweisungen so allgemeiner Natur, dass dem nichts entgegen stehen dürfte. Ich empfehle aber immer, vor größeren Änderungen im System ein vollständiges und aktuelles Backup der bearbeitenden Bereiche anzufertigen, damit im größeren Störungsfall auf dieses zurückgegriffen werden kann. Ich schließe sämtliche Haftung aus.


Jürgen Zeilinger
 

Anhänge

  • Wiederherstellen.jpg
    Wiederherstellen.jpg
    61,1 KB · Aufrufe: 1.865
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: wokoban
Zurück
Oben Unten