2009-07-01 2 views
2

대부분의 POP3 프로토콜을 이해하지만 POP3 클라이언트가 POP3 서버에서 검색 할 수없는 메시지 ID 목록을 효율적으로 가져 오는 방법을 저에게 귀찮게합니다. 야후 나 지메일과 같은 많은 서비스는 이제 공간의 대부분을 차지하고 이메일 메시지를 삭제하는 경우는 거의 없다.POP3 서버에서 미숙 한 메시지 ID를 효율적으로 가져 오기

저는 현재 C#에서 간단한 POP3 클라이언트를 구현하고 있습니다.하지만 질문하는 것은 언어에 구속력이 없어야합니다.

클라이언트 측에서 검색 한 모든 검색된 메시지 ID 목록을 저장합니다. 이 클라이언트는 메시지를 삭제할 필요가 없으며 읽은 광고 메시지를 표시 할 수 있습니다. 마지막으로 POP3 서버에 연결 한 이후로 가장 최근의 전자 메일 메시지를받는 것만 큼 간단합니다.

바로 알고리즘은 이런 식 가정에서 I 오전 :
  1. 가 POP3 서버에서 모든 메시지 ID를 검색합니다. 이 목록은 매일 증가하며 쉽게 크기가 메가 바이트가 될 수 있습니다.
  2. 이 메시지 ID 목록을 이미 검색 한 메시지 ID (이 목록은 클라이언트쪽에 저장되어 있음)와 비교하고 실제로 서버에서 검색해야하는 메일 메시지를 식별합니다.
  3. 위의 2 단계의 결과를 사용하여 서버에서 메일 메시지를 한 번에 하나씩 검색하십시오.

더 효율적으로 만들 수있는 방법이 있습니까?

답변

2

메일을 메일함에 영구히 남겨두기 위해 POP가 설계되지 않았기 때문에 실제로 이렇게 효율적인 방법은 없습니다. 메일을 한 번 가져 와서 삭제하는 유즈 케이스에 맞게 설계 되었기 때문입니다.

전체적인 문제에 대한 더 나은 접근 방법은 효율적인 저장을 위해 인 IMAP을 사용하는 것입니다.

관련 문제