Wo speichert Thunderbird die UID der letzten über POP heruntergeladenen Nachricht?

8

Ich benutze Thunderbird um E-Mail mit POP3 zu empfangen. Ich habe Thurnderbird konfiguriert, um E-Mails auf dem Server zu hinterlassen. Sagen wir mal, ich benutze POP3 um (10%) 10 E-Mails abzurufen, dann logge ich mich für die Nacht aus. Über Nacht werden 10 weitere Nachrichten an meine Mailbox gesendet. Wenn ich am nächsten Morgen Thunderbird starte, sollte der Befehl RETR 20 Nachrichten anzeigen. Thunderbird sollte jedoch die ersten 10 Nachrichten nicht herunterladen. Es sollte bei Nachricht 11 (oder der eindeutigen Kennung oder UID für Nachricht 11) beginnen. Thunderbird sendet den Befehl POP3 STAT und vergleicht dann die UID mit der UID der letzten Nachricht, die Thunderbird gestern abgerufen hat. Es wird feststellen, dass die letzte UID mit der UIDL-Liste für Nachricht 10 übereinstimmt, und Thunderbird dann UIDL , RETR 11 usw.

In meinem Fall zeigt der Befehl POP3 RETR 12 an, dass ich 5379 Nachrichten auf dem POP-Server habe. Ich habe bereits etwa 5000 von ihnen erhalten. Aus irgendeinem Grund möchte Thunderbird alle 5379 Nachrichten herunterladen, anstatt mit 5001 zu beginnen. Ich versuche, dies zu debuggen und suchte nach der UID, die Thunderbird für die letzte abgerufene Nachricht hielt.

Weiß jemand, wo Thunderbird (unter Windows) die letzte UID speichert, mit der er mit der UIDL (Liste) verglichen wird?

Gibt es eine Möglichkeit, es manuell zu setzen, damit ich Thunderbird zwingen kann, irgendwo nahe 5001 zu suchen?

    
Pauld 25.11.2008, 20:04
quelle

3 Antworten

4

Thunderbird hat eine Datei namens popstate.dat , die die UID, einen Zeitstempel (Epoche) und ein Flag enthält. Das Flag zeigt die Aktion an, die Thunderbird für die zugehörige Nachricht ausführen soll.

Offensichtlich funktioniert Thunderbird nicht so, wie ich es oben beschrieben habe. Ich denke Thunderbird macht folgendes. Es sendet einen POP3 UIDL -Befehl, um eine Liste der auf dem POP-Server gespeicherten UIDs zu erhalten. Es vergleicht dann diese Liste mit den in popstate.dat gespeicherten UIDs. Alle UIDs, die nicht bereits in popstate.dat sind, sind neue Nachrichten, die abgerufen werden sollen. Der UIDL-Befehl hat zuvor die Nachrichtennummer und die zugehörige UID zurückgegeben. Thunderbird muss dann einen Befehl POP3 RETR mit der Nachrichtennummer ausführen, die den UIDs zugeordnet ist, die noch nicht abgerufen wurden. Thunderbird muss auch das Flag in popstate.dat betrachten und alle Aktionen für die zugehörige Nachricht ausführen. Zum Beispiel weist das Flag d Thunderbird an, die zugehörige Nachricht zu löschen. Das f -Flag bedeutet, dass Thunderbird nur einen abgeschnittenen Teil der Nachricht hat und die vollständige Nachricht abrufen soll.

Irgendwann aktualisiert Thunderbird das popstate.dat mit den neuen Nachrichten. Ich denke, das passiert in einem Batch-Update auf popstate.dat , nachdem alle Aktionen abgeschlossen wurden. Das heißt, wenn 10 neue Nachrichten abgerufen werden, wird popstate.dat erst aktualisiert, wenn alle 10 Nachrichten abgerufen wurden.

Ich denke, mein Problem liegt auf dem Server. Anscheinend wurde unsere Infrastruktur auf eine neue Version des POP-Servers aufgerüstet und neue UIDs wurden der neuen Version zugewiesen. Mein popstate.dat hatte alle alten UIDs. Die UIDL zum neuen POP-Server sendet eine Liste von über 5000 UIDs, die Thunderbird nicht in popstate.dat aufgelistet hat. Also, Thunderbird fuhr fort, alle 5000+ Nachrichten zu downloaden. Wenn der neue POP-Server die alten UIDs beibehalten hätte, hätte Thunderbird gesehen, dass ich die meisten der mehr als 5000 Nachrichten bereits abgerufen und nur diejenigen heruntergeladen hätte, die ich nicht hatte. Ich denke, dass die meisten Leute in meiner Organisation Outlook benutzen und nicht POP3 benutzen, und wie auch immer die Versionsaktualisierung zum POP-Server gemacht wurde, verursachte kein Problem für diese Benutzer. Es scheint, als ob einige zusätzliche Sorgfalt erforderlich war, um sicherzustellen, dass der neue Server die gleichen UIDs wie der alte Server hatte. Lebe und lerne!

    
Pauld 16.02.2009, 22:32
quelle
0

Welche Version der Server-Software gibt es?

Ссылка

  

00718 ** Die UIDL der Nachricht ist eigentlich nur ihr Dateiname, bis zum ersten MDIRSEP Zeichen

Vielleicht müssen Sie nur den ersten Teil von UIDL in popstate.dat durch neue ersetzen?

    
Malx 03.01.2009 03:56
quelle
0

Es gibt eine Erweiterung für Thunderbird, um Duplikate zu finden und zu löschen. z.B. basierend auf der Nachrichten-ID (die normalerweise vom ursprünglichen Absender der E-Mail generiert wird und sich daher bei Ihrem Infrastruktur-Update nicht geändert hat).

    
Christian 26.01.2009 06:56
quelle

Tags und Links