Layer 8Ehrlicher Tech-Support

Postfach voll, obwohl alles gelöscht wurde

Der Anbieter meldet ein volles Postfach, der Papierkorb ist leer? Gelöschte Nachrichten sind nur markiert — erst das endgültige Entfernen gibt Platz frei.

Aufwand:
ca. 20 Min.
Voraussetzung:
Die Zugangsdaten des Mailkontos, Ein Mailprogramm mit Ordneransicht, Optional: openssl für den direkten Blick auf den Server
Gilt für:
IMAP4rev2 nach RFC 9051, IMAP4rev1 nach RFC 3501, soweit vom Anbieter noch betrieben

Das Symptom

Der Anbieter meldet seit Tagen, das Postfach sei voll, und weist neue Nachrichten ab. Man hat daraufhin gründlich aufgeräumt: mehrere hundert alte Mails markiert, gelöscht, den Papierkorb geleert. Die Anzeige im Mailprogramm zeigt einen deutlich kürzeren Posteingang. Die Speicheranzeige des Anbieters zeigt exakt dieselbe Zahl wie vorher.

Manchmal kommt eine zweite Merkwürdigkeit dazu: Die gelöschten Nachrichten stehen weiter in der Liste, nur durchgestrichen oder ausgegraut. Ein anderes Gerät zeigt sie sogar wieder ganz normal an, als wäre nichts geschehen.

Die „Layer 8“-Wahrheit

Löschen ist bei IMAP kein Vorgang, sondern zunächst eine Meinungsäußerung. Das Protokoll kennt für jede Nachricht eine Liste benannter Markierungen, und eine davon heißt \Deleted. Ihre Bedeutung steht im Standard so knapp, dass man sie zweimal lesen muss, um den Haken zu bemerken: Die Nachricht gilt als gelöscht — zur Entfernung durch ein späteres EXPUNGE. Das Wort „später“ trägt hier die ganze Last. Bis dieses EXPUNGE kommt, liegt jedes Byte noch da, wo es lag, und der Anbieter rechnet es selbstverständlich mit.

Das ist kein Versehen im Entwurf, sondern Absicht. Die Trennung zwischen Markieren und Entfernen ist die einzige Gelegenheit, eine Löschung zurückzunehmen, bevor sie unwiderruflich wird — und weil mehrere Geräte gleichzeitig auf dasselbe Postfach sehen, wäre ein sofortiges Entfernen auch praktisch schwer beherrschbar. Der Preis dafür ist die Verwirrung, um die es hier geht: Zwischen „gelöscht“ und „weg“ liegt ein Schritt, den kein Mailprogramm dem Benutzer je erklärt.

Erschwerend kommt hinzu, dass jedes Programm diesen Schritt anders versteckt und anders benennt. Thunderbird nennt ihn Komprimieren, was klingt, als würde etwas zusammengedrückt statt gelöscht. Apple Mail spricht von gelöschten Objekten, Outlook vom endgültigen Löschen. Und dann gibt es noch die zweite Bauweise: Statt die Markierung zu setzen, verschieben viele Programme gelöschte Nachrichten in einen Papierkorbordner. Der Standard erlaubt beides ausdrücklich — er beschreibt den Papierkorb einmal als virtuelles Postfach über alle markierten Nachrichten und einmal als bloßen Vorschlag für Clients, die das Markierungsmodell gar nicht benutzen wollen. Wer also den Papierkorb leert und danach immer noch Platzmangel hat, hat womöglich schlicht die andere Hälfte des Postfachs nicht angesehen.

Der zweite blinde Fleck ist der Ordner mit den gesendeten Nachrichten. Er wächst still, jahrelang, und enthält jede Präsentation, jedes Foto und jedes PDF, das man je verschickt hat — in voller Größe, denn eine gesendete Mail enthält den Anhang, nicht einen Verweis darauf. In vielen vollen Postfächern ist er der mit Abstand größte Ordner, und in fast jedem Aufräumversuch wird er übersehen, weil man beim Wort Postfach an den Posteingang denkt.

Ein Postfach ist also nicht voll, weil der Anbieter geizig ist. Es ist voll, weil gelöscht nicht entfernt bedeutet, weil der Papierkorb je nach Programm etwas ganz anderes ist, und weil der Ordner, der den meisten Platz belegt, nicht der ist, in dem man aufräumt.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Erst zählen, was wirklich im Postfach liegt

    Bevor irgendetwas entfernt wird, gehört gemessen. Der Befehl baut eine verschlüsselte Verbindung zum Posteingangsserver auf — nach RFC 9051, Abschnitt 2.1, lauscht ein IMAP-Server auf Port 143 unverschlüsselt oder auf Port 993 mit sofort beginnender Verschlüsselung. Danach die Zeilen darunter tippen; der Tag am Zeilenanfang gehört zum Protokoll. Die Antwort auf a2 nennt Gesamtzahl, Zahl der nur markierten Nachrichten und die belegten Oktetts. Weicht DELETED deutlich von null ab, ist die Frage bereits beantwortet.

    openssl s_client -connect imap.example.com:993 -crlf -quiet
    a1 LOGIN benutzer@example.com geheim
    a2 STATUS INBOX (MESSAGES DELETED SIZE)
    a3 LOGOUT
    
  2. 2.

    Herausfinden, wo Ihr Mailprogramm den Papierkorb vermutet

    Der zweite häufige Grund ist, dass die Nachrichten sehr wohl aus dem Posteingang verschwunden, aber nur in einen anderen Ordner desselben Postfachs gewandert sind. Der Befehl listet alle Ordner samt Sonderzweck-Merkmalen auf; Ordner mit dem Merkmal \Trash, \Junk oder \Sent sind die üblichen Verdächtigen. Die Anführungszeichen gehören zum Befehl. Kennt der Server das Merkmal nicht, hilft die zweite Zeile: Sie listet schlicht alle Ordner auf, und der Papierkorb steht unter irgendeinem Namen dabei — je nach Anbieter Trash, Papierkorb, Gelöschte Elemente oder Deleted Items.

    a4 LIST (SPECIAL-USE) "" "*"
    a5 LIST "" "*"
    
  3. 3.

    Jeden Ordner einzeln nach seiner Größe fragen

    Speicherplatz wird selten nur vom Posteingang belegt. Der Ordner mit gesendeten Nachrichten ist bei Menschen, die viel mit Anhängen arbeiten, regelmäßig der größte im ganzen Postfach — er wird aber nie aufgeräumt, weil ihn niemand als Speicherfresser wahrnimmt. Die Befehle fragen die drei üblichen Kandidaten ab. Die Ordnernamen aus der Liste des vorigen Schritts einsetzen; antwortet der Server auf SIZE mit BAD, ist es ein älterer Server nach RFC 3501, und die Angabe entfällt ersatzlos.

    a6 STATUS "Trash" (MESSAGES DELETED SIZE)
    a7 STATUS "Sent" (MESSAGES DELETED SIZE)
    a8 STATUS "Junk" (MESSAGES DELETED SIZE)
    
  4. 4.

    Die markierten Nachrichten ansehen, bevor sie verschwinden

    Vorsicht: Der nächste Schritt ist endgültig, es gibt kein Zurück und keinen Papierkorb hinter dem Papierkorb. Deshalb erst nachsehen, was betroffen wäre. SELECT wählt das Postfach aus, SEARCH DELETED liefert die laufenden Nummern aller Nachrichten mit gesetzter \Deleted-Markierung — RFC 9051 beschreibt diesen Suchbegriff schlicht als Nachrichten, bei denen die \Deleted-Markierung gesetzt ist. Kommt eine lange Liste zurück, ruhig zuerst eine einzelne Nachricht mit FETCH ansehen und sicherstellen, dass wirklich nur Müll dabei ist.

    a9 SELECT INBOX
    a10 SEARCH DELETED
    a11 FETCH 1 (ENVELOPE)
    
  5. 5.

    Endgültig entfernen — im Mailprogramm oder direkt

    Der bequeme Weg führt über das Mailprogramm: Thunderbird nennt die Funktion Komprimieren, Apple Mail Gelöschte Objekte löschen, Outlook Ordner endgültig löschen. Alle drei senden im Hintergrund dasselbe EXPUNGE. Wer es direkt tun will, benutzt die Zeilen darunter. Die erste setzt die Markierung an einem Bereich von Nachrichten — die Schreibweise mit dem Doppelpunkt bezeichnet eine Spanne —, die zweite entfernt anschließend alle markierten Nachrichten des ausgewählten Postfachs dauerhaft. Achtung: Dieser Schritt ist unwiderruflich; der Server bestätigt jede entfernte Nachricht mit einer eigenen EXPUNGE-Zeile.

    a12 STORE 1:20 +FLAGS (\Deleted)
    a13 EXPUNGE
    
  6. 6.

    Die Einstellung finden, die das Aufräumen dauerhaft übernimmt

    Ein einmaliges Aufräumen löst das Problem für vier Wochen. Danach steht es wieder da, weil die Ursache eine Voreinstellung ist. In den Kontoeinstellungen jedes Mailprogramms gibt es zwei Stellschrauben: erstens, ob gelöschte Nachrichten in den Papierkorb verschoben oder nur markiert werden, und zweitens, ob und wann der Papierkorb automatisch geleert wird — üblich ist beim Beenden des Programms oder nach einer festen Zahl von Tagen. Beides einmal bewusst einstellen, statt sich auf die Voreinstellung des Herstellers zu verlassen. RFC 9051 kennt übrigens noch eine elegantere Variante: Der Befehl CLOSE entfernt laut Abschnitt 6.4.1 beim Verlassen eines Postfachs alle markierten Nachrichten dauerhaft, und zwar ohne die vielen Rückmeldezeilen — deshalb ist er bei großen Aufräumaktionen deutlich schneller als EXPUNGE.

  7. 7.

    Prüfen, ob es überhaupt am Postfach liegt

    Wenn nach alldem noch Platzmangel gemeldet wird, ist möglicherweise gar nicht das Mailpostfach voll, sondern der gemeinsame Speicher des Kontos — viele Anbieter rechnen Postfach, Dateiablage und Fotos in einen einzigen Topf. Das steht in der Weboberfläche des Anbieters, nicht im Mailprogramm. Der zweite Verdächtige ist der lokale Zwischenspeicher: Bei einem IMAP-Konto legt das Mailprogramm eine Kopie auf der Festplatte an, und die schrumpft nicht automatisch mit. Der Befehl zeigt, wie viel Platz das Thunderbird-Profil örtlich belegt — ist der lokale Datenträger das eigentliche Problem, hilft dort ebenfalls das Komprimieren der Ordner.

    du -sh ~/.thunderbird/*/ImapMail 2>/dev/null
    

Häufige Fragen (FAQ)

?Ich habe hunderte Mails gelöscht und der Speicher ist unverändert. Wo sind sie hin?

Nirgends. Sie liegen noch da und tragen eine Notiz. IMAP löscht nicht sofort, sondern setzt zuerst eine Markierung an der Nachricht. RFC 9051 führt in Abschnitt 2.3.2 die Systemmarkierungen auf und beschreibt eine davon so: \Deleted bedeutet, dass die Nachricht als gelöscht gilt, um durch ein späteres EXPUNGE entfernt zu werden — im Original steht dort zu \Deleted der Satz: Message is „deleted“ for removal by later EXPUNGE. Erst der Befehl EXPUNGE räumt tatsächlich auf. Abschnitt 6.4.3 sagt dazu: Der EXPUNGE-Befehl entfernt dauerhaft alle Nachrichten aus dem aktuell ausgewählten Postfach, bei denen die \Deleted-Markierung gesetzt ist. Solange das niemand auslöst, belegen die Nachrichten weiter Platz — und der Anbieter zählt sie mit. Das ist keine Schlamperei des Servers, sondern die Bauart des Protokolls: Sie gibt Ihnen die Gelegenheit, eine Löschung zurückzunehmen, bevor sie unwiderruflich wird.

?Warum reicht es nicht, den Papierkorb zu leeren?

Weil der Papierkorb im IMAP-Modell gar nicht zwingend ein Ordner ist. RFC 9051 beschreibt das Sonderzweck-Merkmal \Trash so: Dieses Postfach hält Nachrichten, die gelöscht oder zum Löschen markiert wurden. Und dann kommt der entscheidende Satz — bei manchen Server-Umsetzungen sei das ein virtuelles Postfach, das Nachrichten aus anderen Postfächern enthält, die mit der \Deleted-Markierung versehen sind; alternativ sei es lediglich ein Hinweis für einen Client, der das IMAP-Modell mit \Deleted nicht verwenden möchte. Es gibt also zwei völlig verschiedene Bauweisen, und Ihr Mailprogramm hat eine davon gewählt. Verschiebt es gelöschte Nachrichten in einen echten Papierkorbordner, verschwinden sie aus dem Posteingang und belegen dort weiter Platz. Setzt es dagegen nur die Markierung, bleiben sie sichtbar oder durchgestrichen im Posteingang stehen. In beiden Fällen sind sie erst nach einem EXPUNGE wirklich weg.

?Kann ich nachsehen, wie viele Nachrichten nur markiert herumliegen?

Ja, und zwar mit einer einzigen Zeile. RFC 9051 definiert in Abschnitt 6.3.11 den Befehl STATUS und die Angaben, die er liefern kann. Darunter sind MESSAGES (die Anzahl der Nachrichten im Postfach), UNSEEN (die Anzahl der Nachrichten ohne \Seen-Markierung), DELETED (die Anzahl der Nachrichten, bei denen die \Deleted-Markierung gesetzt ist) und SIZE (die Gesamtgröße des Postfachs in Oktetts). Eine Warnung gibt der Standard selbst mit: STATUS SIZE könne je nach Umsetzung des Servers erhebliche Zeit beanspruchen, weshalb Clients diese Angabe mit Bedacht verwenden sollten. DELETED und SIZE gehören zu IMAP4rev2; ältere Server nach RFC 3501 beantworten nur MESSAGES, RECENT, UIDNEXT, UIDVALIDITY und UNSEEN. Wer eine BAD-Antwort bekommt, fragt einfach ohne DELETED und SIZE noch einmal.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Verwandte Fehler

SWLästig

Mails nur auf einem Gerät: POP3 statt IMAP

Am PC gelesen, am Handy wieder ungelesen oder ganz verschwunden? Dann holt ein Gerät die Post ab und löscht sie, statt sie auf dem Server zu lassen.

SWSystemzerstörend

Versehentlich gelöschte Datei retten

Gelöscht heißt zunächst nur freigegeben. Entscheidend ist, sofort aufzuhören, auf den Datenträger zu schreiben – jede Sekunde zählt.

OSAnfängerfehler

Mac: Programm lässt sich nicht löschen

Das Programm wandert nicht in den Papierkorb, weil es angeblich benutzt wird oder zum System gehört? Am Mac gilt eine andere Regel als bei Windows.

SWLästigno space left on device

Docker: no space left on device beheben

Docker bricht mit 'no space left on device' ab, obwohl scheinbar Platz da ist? Alte Images, Container und Build-Cache fressen die Platte. So räumst du auf.

MOBLästig

iPhone: Update angefordert bleibt hängen

Das iOS-Update hängt bei 'Update angefordert' oder 'Update wird überprüft'? Meist blockiert ein VPN, ein alter Download oder zu wenig Speicher.