Layer 8Ehrlicher Tech-Support

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.

Aufwand:
ca. 30 Min.
Voraussetzung:
Die Zugangsdaten des Mailkontos, Ein Mailprogramm mit sichtbaren Kontoeinstellungen, Eine Sicherung des lokalen Postfachs, bevor irgendetwas umgestellt wird
Gilt für:
IMAP4rev2 nach RFC 9051, POP3 nach RFC 1939 (STD 53), Jedes Mailprogramm, das beide Verfahren anbietet

Das Symptom

Am Arbeitsrechner ist der Posteingang voll, am Laptop steht dasselbe Postfach leer da. Oder umgekehrt: Eine Mail, die man morgens am Schreibtisch gelesen und beantwortet hat, meldet sich abends auf dem Tablet erneut als ungelesen. Manche Nachrichten verschwinden ganz — sie waren kurz da und sind beim nächsten Blick auf dem zweiten Gerät nirgends mehr auffindbar. Ordner, die man auf einem Gerät angelegt hat, gibt es auf dem anderen nicht. Und der Ordner mit den gesendeten Nachrichten wirkt auf jedem Gerät wie ein eigenes, unvollständiges Tagebuch.

Der übliche Verdacht fällt auf das Handy, den Anbieter oder ein Update. Tatsächlich funktioniert alles genau so, wie es eingerichtet wurde.

Die „Layer 8“-Wahrheit

Es gibt zwei grundverschiedene Wege, an Post zu kommen, und der Einrichtungsassistent fragt einmal danach — in einem Dialog, den fast niemand liest. Die Antwort entscheidet über die nächsten zehn Jahre.

Das eine Verfahren, POP3, wurde 1996 in einer Welt standardisiert, in der ein Mensch einen Rechner hatte. Sein Zweck steht in der Einleitung des Standards: Post wird heruntergeladen und dann gelöscht. Der Server ist ein Briefkasten, das Gerät der Aktenschrank. Der Befehl DELE markiert eine Nachricht, das abschließende QUIT lässt den Server sie tatsächlich entfernen. Wer diesen Weg auf zwei Geräten benutzt, hat zwei Aktenschränke und einen Briefkasten, aus dem jeweils der Schnellere die Post mitnimmt. Das ist kein Fehler, das ist die Bauart.

Das andere Verfahren, IMAP, dreht die Zuständigkeit um. Die Nachrichten bleiben auf dem Server; das Gerät sieht sie an, verschiebt sie, markiert sie. Der aktuelle Standard dafür ist RFC 9051 mit IMAP4rev2, der 2021 den seit 2003 gültigen RFC 3501 ersetzt hat. Sein Versprechen: Entfernte Ordner sollen sich anfühlen wie lokale. Dazu gehört, dass Zustandsmarkierungen wie \Seen — gelesen — nicht im Gerät liegen, sondern beim Server. Genau deshalb weiß das Handy, was der PC schon gelesen hat, und genau deshalb kann POP3 das prinzipiell nicht: In seinem gesamten Befehlssatz kommt keine einzige Markierung vor.

Die Einstellung „Kopie auf dem Server belassen“ ist der Grund, warum dieses Problem so zäh ist. Sie sieht nach einer Lösung aus und ist keine. Sie unterdrückt bloß das Löschen; sie gleicht nichts ab. Gelesen-Status, selbst angelegte Ordner, verschobene und gesendete Nachrichten bleiben weiterhin auf genau einem Gerät. Und sie hängt am optionalen Befehl UIDL: Fehlt der oder verliert der Client sein lokales Verzeichnis der schon geholten Kennungen, kommt beim nächsten Abruf alles ein zweites Mal.

Die ehrliche Diagnose lautet also nicht „mein Mailprogramm spinnt“, sondern „ich benutze ein Protokoll aus der Ein-Rechner-Ära auf vier Geräten“. Der Umbau ist unspektakulär, aber er hat eine scharfe Kante: Was per POP3 heruntergeladen wurde, existiert nur lokal. Es gibt keine Kopie in der Wolke, aus der man es zurückholt. Deshalb steht die Sicherung in dieser Anleitung vor dem ersten Klick — und deshalb wird ein neues Konto angelegt, statt am alten herumzudrehen.

Die echte, verifizierte Lösung

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

  1. 1.

    Feststellen, welches Verfahren jedes Gerät wirklich benutzt

    Erst messen, dann umbauen. Die Kontoart steht in den Kontoeinstellungen des Mailprogramms, meist direkt neben dem Servernamen. Ein Konto, dessen Posteingangsserver mit pop beginnt oder als POP-Konto ausgewiesen ist, holt ab und räumt weg. Bei Thunderbird lässt sich das ohne Klickerei aus der Profildatei lesen: Der erste Befehl zeigt für jedes eingerichtete Konto den Typ (imap oder pop3) und den Servernamen. Wichtig ist, das auf jedem betroffenen Gerät zu tun — der Übeltäter ist fast immer der eine Rechner, an den seit Jahren niemand mehr gedacht hat.

    grep -h -E 'mail\.server\.[^.]+\.(type|hostname)' ~/.thunderbird/*/prefs.js
    
  2. 2.

    Prüfen, ob der Anbieter überhaupt IMAP anbietet

    Fast alle tun es, aber es lohnt sich, das zu belegen statt zu hoffen. Der Befehl baut eine verschlüsselte Verbindung zum Posteingangsserver auf; nach RFC 9051, Abschnitt 2.1, lauscht ein IMAP4rev2-Server auf Port 143 (unverschlüsselt) oder Port 993 (mit sofort beginnender Verschlüsselung). Nach dem Verbindungsaufbau die zwei Zeilen darunter tippen. Antwortet der Server auf CAPABILITY mit einer Zeile, die IMAP4rev1 oder IMAP4rev2 enthält, ist alles Nötige vorhanden. Der Tag am Zeilenanfang — hier a1 — gehört zum Protokoll und muss mitgetippt werden.

    openssl s_client -connect imap.example.com:993 -crlf -quiet
    a1 CAPABILITY
    a1 LOGOUT
    
  3. 3.

    Vor jeder Umstellung den lokalen Bestand sichern

    Alles, was per POP3 heruntergeladen wurde, liegt ausschließlich auf diesem einen Gerät. Es gibt keine Kopie auf dem Server, aus der man es zurückholen könnte. Bevor irgendein Konto angefasst wird, gehört das Profil vollständig kopiert. Der erste Befehl legt eine datierte Sicherung des Thunderbird-Profils an, der zweite die des lokalen Maildir, falls die Post dort liegt. Erst wenn diese Kopie existiert, geht es weiter.

    cp -a ~/.thunderbird ~/thunderbird-sicherung-$(date +%F)
    cp -a ~/Maildir ~/maildir-sicherung-$(date +%F)
    
  4. 4.

    Nachsehen, was auf dem Server noch übrig ist

    Bevor Sie ein IMAP-Konto einrichten, ist die Frage interessant, wie viel der POP3-Client bereits abgeräumt hat. Der Befehl verbindet sich mit dem POP3-Dienst; RFC 8314 legt für den Dienst pop3s den Standardport 995 fest, bei dem die Verschlüsselung sofort beginnt. STAT nennt Anzahl und Gesamtgröße, UIDL listet die eindeutigen Kennungen aller vorhandenen Nachrichten. Keine Sorge vor dem abschließenden QUIT: Der Server entfernt beim Beenden ausschließlich Nachrichten, die zuvor mit DELE markiert wurden — und das tut hier niemand. RFC 1939 hält sogar ausdrücklich fest, dass der Server keine Nachricht entfernen darf, die nicht als gelöscht markiert ist.

    openssl s_client -connect pop.example.com:995 -crlf -quiet
    USER benutzer@example.com
    PASS geheim
    STAT
    UIDL
    QUIT
    
  5. 5.

    Ein zweites Konto als IMAP anlegen, statt das alte umzustellen

    Der verbreitetste Fehler an dieser Stelle ist, im bestehenden Konto einfach den Typ zu ändern. Das können die meisten Programme gar nicht, und wo sie es scheinbar können, hängt der lokale Nachrichtenbestand plötzlich in der Luft. Richtig ist: ein neues Konto mit denselben Zugangsdaten anlegen, diesmal ausdrücklich als IMAP, und das alte POP3-Konto vorerst unangetastet stehen lassen. Danach stehen beide nebeneinander im Programm — links die alte lokale Sammlung, rechts das Postfach auf dem Server.

  6. 6.

    Die lokalen Altbestände in die Serverordner hochziehen

    Jetzt die Nachrichten aus den lokalen POP3-Ordnern in die IMAP-Ordner verschieben oder kopieren. Das Mailprogramm lädt sie dabei auf den Server hoch. Bei mehreren tausend Nachrichten in Blöcken arbeiten, nicht alles auf einmal — und danach am zweiten Gerät nachsehen, ob dort wirklich alles angekommen ist. Wer den Papierkorb und den Ordner mit gesendeten Nachrichten vergisst, merkt das erst Monate später.

  7. 7.

    Erst kontrollieren, dann das POP3-Konto entfernen

    Das alte Konto wird gelöscht, wenn der Server den vollständigen Bestand hat — nicht vorher. Der Befehl fragt das direkt beim Server ab: Nach RFC 9051, Abschnitt 6.3.11, liefert STATUS unter anderem MESSAGES (Anzahl der Nachrichten im Postfach) und UNSEEN (Anzahl der Nachrichten ohne \Seen-Markierung). Stimmt die Zahl mit dem überein, was Sie hochgeladen haben, ist der Umzug fertig. Zusätzlich auf jedem Gerät prüfen, dass in den Kontoeinstellungen kein zweiter POP3-Zugang mehr auf dasselbe Postfach zeigt — sonst räumt der beim nächsten Start alles wieder ab.

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

Häufige Fragen (FAQ)

?Warum sind meine Mails auf dem einen Gerät da und auf dem anderen weg?

Weil die beiden Geräte unterschiedliche Verfahren benutzen — und eines davon ist ausdrücklich dafür gebaut, den Server leerzuräumen. RFC 1939, der Standard für POP3, sagt es in der Einleitung ohne Umschweife: POP3 ist nicht dafür gedacht, umfangreiche Bearbeitungsvorgänge für Post auf dem Server bereitzustellen; normalerweise wird Post heruntergeladen und dann gelöscht. Im Original: „POP3 is not intended to provide extensive manipulation operations of mail on the server; normally, mail is downloaded and then deleted.“ Der Ablauf dahinter steht ebenfalls im RFC: Der Befehl DELE markiert eine Nachricht als gelöscht, entfernt sie aber noch nicht — „The POP3 server does not actually delete the message until the POP3 session enters the UPDATE state.“ In diesen Zustand kommt die Sitzung, wenn der Client QUIT sendet; dann entfernt der Server alle markierten Nachrichten. Ihr Mailprogramm auf dem PC hat also nichts kaputt gemacht, sondern genau das getan, wofür POP3 gedacht ist. Das Handy findet danach ein leeres Postfach vor.

?Was macht IMAP anders — und warum ist der Gelesen-Status dann plötzlich überall gleich?

IMAP verschiebt die Post nicht, sondern greift auf sie zu, wo sie liegt. Der Abstract von RFC 9051 formuliert es so: Das Internet Message Access Protocol Version 4rev2 erlaubt einem Client, elektronische Nachrichten auf einem Server abzurufen und zu bearbeiten — „allows a client to access and manipulate electronic mail messages on a server“ — und weiter: IMAP4rev2 gestattet den Umgang mit Postfächern, also entfernten Nachrichtenordnern, auf eine Weise, die funktional gleichwertig zu lokalen Ordnern ist. Entscheidend für den Gelesen-Status ist Abschnitt 2.3.2: Zu jeder Nachricht gehört eine Liste benannter Merkmale, genannt Flags. Ein Systemflag ist in der Spezifikation vordefiniert und beginnt mit einem Rückwärtsschrägstrich; definiert sind unter anderem \Seen (Nachricht wurde gelesen), \Answered, \Flagged, \Deleted und \Draft. Diese Markierungen liegen auf dem Server, nicht im Gerät. Deshalb weiß das Handy, was der PC schon gelesen hat. POP3 kennt nichts dergleichen — sein gesamter Befehlssatz umfasst STAT, LIST, RETR, DELE, NOOP, RSET, QUIT sowie die optionalen TOP, UIDL, USER, PASS und APOP. Kein einziger davon setzt eine Markierung.

?Ich habe „Kopie auf dem Server belassen“ eingeschaltet und trotzdem Chaos. Wieso?

Weil diese Einstellung nur das Löschen unterdrückt, nicht das Grundproblem löst. Damit ein POP3-Client erkennt, welche Nachricht er schon geholt hat, braucht er den optionalen Befehl UIDL aus Abschnitt 7 von RFC 1939. Der liefert je Nachricht eine eindeutige Kennung, die laut RFC eine vom Server bestimmte Zeichenkette aus einem bis 70 Zeichen ist, eine Nachricht innerhalb eines Postfachs eindeutig identifiziert und über Sitzungen hinweg bestehen bleibt. Der Befehl ist optional — bietet der Server ihn nicht an oder wird das lokale Verzeichnis des Clients gelöscht, lädt das Programm alles noch einmal herunter, und Sie haben jede Mail doppelt. Und selbst wenn UIDL sauber funktioniert: Der Gelesen-Status, verschobene Nachrichten, selbst angelegte Ordner und gesendete Mails bleiben lokal auf genau einem Gerät. Zwei Geräte per POP3 auf dasselbe Postfach zu richten ergibt zwei Postfächer, die sich langsam auseinanderentwickeln. Die Einstellung ist ein Pflaster, kein Abgleich.

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

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.