Dass Antworten unter der ursprünglichen Nachricht einsortiert werden, wirkt selbstverständlich. Ist es nicht. Ein Verlauf ist nichts, was irgendwo gespeichert wäre — er wird bei jedem Öffnen neu zusammengesetzt, aus drei Kopfzeilen, die in jeder Nachricht mitgeschickt werden. Wenn Threads auseinanderfallen, fehlt fast immer eine davon.
Die drei Kopfzeilen
| Kopfzeile | Inhalt |
|---|---|
Message-ID | Die eindeutige Kennung dieser Nachricht. Vergibt der sendende Server, einmalig, weltweit. |
In-Reply-To | Die Kennung genau der Nachricht, auf die geantwortet wird. Ein einzelner Wert. |
References | Die Kennungen aller Nachrichten des bisherigen Verlaufs, in der Reihenfolge, in der sie entstanden sind. |
Eine Message-ID sieht so aus:
Message-ID: <1a4f9c02-7e3b-4d51-9f18-2c6a0b7d4e88@firma.de>
Der Teil hinter dem @ ist die Domain des erzeugenden Systems, davor steht ein Wert, der sich nicht wiederholen darf. Die spitzen Klammern gehören dazu — sie sind Teil des Formats, nicht Zierde.
Wie der Verlauf wächst
In-Reply-To nennt den direkten Vorgänger, References den ganzen Weg bis zum Anfang. Deshalb überlebt ein Verlauf auch dann, wenn eine Nachricht in der Mitte fehlt.Der Unterschied zwischen den beiden Feldern ist der Punkt, an dem es interessant wird. In-Reply-To allein genügte für eine Kette — aber nur, solange jede Nachricht vorhanden ist. Fehlt eine, reißt die Kette und der Rest hängt in der Luft.
References löst genau das: Weil jede Nachricht den kompletten Weg bis zum Anfang mitführt, findet ein Programm auch dann noch den gemeinsamen Ursprung, wenn drei Nachrichten dazwischen nie angekommen sind. Deshalb sortiert eine weitergeleitete Antwort sich beim neuen Empfänger korrekt ein, obwohl er den Anfang nie gesehen hat.
Der andere Weg: nach Betreff
Manche Programme — Gmail hat es lange so gemacht — gruppieren stattdessen nach Betreff und Beteiligten. Das hat einen praktischen Vorteil: Es funktioniert auch bei Absendern, die die Kopfzeilen nicht setzen. Und zwei Nachteile, die jeder kennt, ohne den Grund zu kennen:
- Wer den Betreff ändert, weil sich das Thema verschoben hat, spaltet den Verlauf.
- Zwei unabhängige Nachrichten mit dem Betreff „Rechnung" landen im selben Verlauf, obwohl sie nichts miteinander zu tun haben.
Beides passiert nicht, wenn nach Kennungen gruppiert wird. Ein Betreff darf sich beliebig ändern, solange References steht.
Wo es in der Praxis bricht
Fast immer bei automatisch erzeugten Nachrichten, und fast immer aus einem dieser Gründe:
- Keine Antwortbezüge gesetzt. Das Ticketsystem antwortet dem Kunden, setzt aber weder
In-Reply-TonochReferences. Die Antwort erscheint beim Kunden als neue Nachricht ohne Zusammenhang. Das ist der mit Abstand häufigste Fall. - Betreffkürzel statt Kopfzeilen. Genau deshalb steht in so vielen Betreffzeilen ein
[#48213]: Das System erkennt seine eigenen Vorgänge daran wieder, weil es sich auf die Kopfzeilen nicht verlässt. Für den Menschen davor ist es Rauschen. - Wechselnde Kennung bei erneutem Versand. Wird dieselbe Nachricht zweimal zugestellt und bekommt zweimal eine neue
Message-ID, kann kein Empfänger die Doppelung erkennen. Umgekehrt gilt: Zwei verschiedene Nachrichten mit derselben Kennung werden von manchen Programmen als eine behandelt — die zweite verschwindet stillschweigend. - Abgeschnittenes
References. Manche Gateways kürzen lange Kopfzeilen. Danach ist der Ursprung des Verlaufs nicht mehr auffindbar.
Was ein sendendes System tun sollte
Die Regeln sind kurz:
- Jeder Nachricht eine eigene, dauerhaft gespeicherte
Message-IDgeben. Wer später darauf antworten will, braucht sie. - Beim Antworten
In-Reply-Toauf die Kennung der beantworteten Nachricht setzen undReferencesaus derenReferencesplus derenMessage-IDbilden. - Ist keine
Referencesvorhanden, besteht die neue aus derMessage-IDdes Vorgängers allein. - Bei erneutem Versand derselben Nachricht die Kennung beibehalten. Bei einer neuen Nachricht eine neue vergeben.
Das sind zwei Felder mehr im Versandaufruf. Der Unterschied für den Empfänger ist erheblich: Statt sechs zusammenhangloser Nachrichten steht ein Vorgang im Postfach.
Selbst nachsehen
Alle drei Felder stehen im Nachrichtenkopf und lassen sich in jedem Programm anzeigen — bei Thunderbird über die Quelltextansicht, bei Gmail über „Original anzeigen". Wenn ein Verlauf auseinanderfällt, beantwortet ein Blick dorthin die Frage in zehn Sekunden: Steht in der Antwort ein In-Reply-To, und ist der Wert darin die Message-ID der Nachricht, die davor kam? Wenn nicht, liegt es nicht am Mailprogramm.