Thunderbird는 POP를 통해 다운로드 한 마지막 메시지의 UID를 어디에서 보관합니까?

StackOverflow https://stackoverflow.com/questions/318673

  •  11-07-2019
  •  | 
  •  

문제

나는 Thunderbird를 사용하여 POP3을 사용하여 이메일을받습니다. Thurnderbird가 서버에 이메일을 남겨 두도록 구성했습니다. 언젠가 내가 POP3를 사용하여 검색한다고 가정 해 봅시다 (RETR) 10 개의 이메일 메시지, 그런 다음 밤에 로그 아웃합니다. 밤새 10 개의 메시지가 내 사서함으로 전송됩니다. 다음날 아침에 Thunderbird를 발사하면 STAT 명령에는 20 개의 메시지가 표시되어야합니다. 그러나 Thunderbird는 처음 10 개의 메시지를 다운로드해서는 안됩니다. 메시지 11 (또는 메시지 11의 고유 식별자 또는 UID)에서 시작해야합니다. Thunderbird는 POP3를 보낼 것입니다 UIDL 명령, UID를 어제 검색 한 마지막 메시지의 UID와 비교하십시오. 마지막 UID가 메시지 10의 UIDL 목록과 일치한다는 것을 알게 될 것입니다. RETR 11, RETR 12, 등등.

제 경우에는 POP3입니다 STAT 명령은 POP 서버에 5379 개의 메시지가 있음을 보여줍니다. 나는 이미 그들 중 약 5000 명을 받았습니다. 어떤 이유로 Thunderbird는 5001에서 시작하는 대신 5379 개의 메시지를 모두 다운로드하려고합니다. 나는 이것을 디버깅하려고 노력하고 있으며 Thunderbird가 마지막으로 검색된 메시지라고 생각하는 UID를 찾고있었습니다.

Windows의 Thunderbird (Windows)가 마지막 UID를 저장하는 곳을 아는 사람이 있습니까?

Thunderbird가 5001에 가까운 곳을 검색하도록 강요 할 수 있도록 수동으로 설정하는 방법이 있습니까?

도움이 되었습니까?

해결책

Thunderbird에는 파일이 있습니다 Popstate.dat 여기에는 UID, 타임 스탬프 (Epoch) 및 깃발이 포함되어 있습니다. 깃발은 Thunderbird가 관련 메시지를 위해 수행하는 행동을 나타냅니다.

분명히, Thunderbird는 실제로 위에서 설명한 것처럼 작동하지 않습니다. Thunderbird가 다음을 수행한다고 생각합니다. POP3을 보냅니다 UIDL 명령 팝 서버에 저장된 UID 목록을 얻으려면 그런 다음이 목록을 저장된 UID와 비교합니다. popstate.dat. 아직없는 UID popstate.dat 검색 할 새 메시지입니다. UIDL 명령은 이전에 메시지 번호와 관련 UID를 반환했습니다. 그런 다음 Thunderbird는 POP3를 수행해야합니다 RETR 아직 검색되지 않은 UID와 관련된 메시지 번호를 사용하는 명령. Thunderbird는 또한 깃발을 봐야합니다 popstate.dat 관련 메시지에 대한 조치를 취하십시오. 예를 들어, 깃발 d Thunderbird에게 관련 메시지를 삭제하라고 지시합니다. 그만큼 f 플래그는 Thunderbird가 메시지의 잘린 부분 만 가지고 있으며 전체 메시지를 검색해야 함을 의미합니다.

어느 시점에서 Thunderbird가 업데이트됩니다 popstate.dat 새 메시지와 함께. 나는 이것이 배치 업데이트에서 발생한다고 생각합니다 popstate.dat 모든 작업이 완료된 후. 즉, 검색 할 새 메시지가 10 개가 있다면 popstate.dat 10 개의 메시지가 모두 검색 될 때까지 업데이트되지 않습니다.

내 문제가 서버에 있다고 생각합니다. 분명히 우리의 인프라는 새로운 버전의 Pop Server로 업그레이드되었으며 새 버전에 새로운 UID가 할당되었습니다. 나의 popstate.dat 모든 오래된 uids가있었습니다. 새로운 팝 서버에 대한 UIDL은 Thunderbird가 나와 있지 않은 5000+ UID 목록을 보냅니다. popstate.dat. 따라서 Thunderbird는 5000 개 이상의 메시지를 모두 다운로드했습니다. 새로운 팝 서버가 오래된 UID를 유지했다면 Thunderbird는 이미 5000 개 이상의 메시지를 대부분 검색했으며 내가 가지고 있지 않은 메시지를 다운로드했을 것임을 알았을 것입니다. 조직의 대부분의 사람들이 Outlook을 사용하고 POP3을 사용하지 않는다고 생각하지만 POP 서버에 대한 버전 업데이트는 해당 사용자에게 문제가되지 않았습니다. 새 서버가 이전 서버와 동일한 UID를 갖도록하기 위해 약간의 추가주의가 필요한 것 같습니다. 살고 배우십시오!

다른 팁

어떤 버전의 서버 소프트웨어가 있습니까?

http://courier.sourcearchive.com/documentation/0.60.0-2/pop3dserver_8c-source.html

00718 ** 메시지의 uidl은 실제로 첫 번째 mdirsep 문자입니다.

Popstate.dat에서 UIDL의 첫 번째 부분을 새로운 것들로 교체해야할까요?

Thunderbird가 복제물을 찾고 삭제할 확장이 있습니다. 예를 들어 Message-ID를 기반으로합니다 (일반적으로 메일의 원래 발신자가 생성하므로 인프라 업데이트로 변경되지 않았습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top