2009-07-29 2 views
0

나는 Gmail 계정에 연결하고 전송 된 atachments를 다운로드하는 멋진 프로그램을 작성했다. 첨부 파일이 다운로드되면 읽음으로 표시되고 다시 다운로드되지 않습니다. 이 프로그램은 하나의 첨부 파일이 두 번 다운로드되지 않도록 고유 한 첨부 파일을 다운로드하는 각 프로그램과 함께 여러 인스턴스에서 실행해야합니다. 문제는 현재 첨부 파일이 적당한 크기 인 경우 한 프로그램에서 다른 인스턴스가 연결될 때 해당 프로그램을 다운로드하고 읽음으로 표시되기 전에 첨부 파일을 다운로드하기 시작한다는 것입니다.여러 Java POP3 클라이언트가 Gmail과 호환되도록하기

나는 다양한 플래그를 확인하고 폴더가 열려 있는지 여부를 확인하려고했지만 아무 것도 작동하지 않는 것 같습니다. 어떤 해결책?

업데이트 : 빠른 답변 주셔서 감사합니다. 슬프게도 IMAP은 다른 이유로 인해 옵션이 아닙니다.

답변

1

다른 사람들이 언급했듯이 POP3은 실제로 이런 종류의 시나리오를위한 것이 아닙니다.

절대적으로 POP3를 사용해야하는 경우 모든 전자 메일을 중간 서버로 다운로드하여 메시지를 정렬하고 각 다른 클라이언트에서 사용할 수 있도록하는 것이 좋습니다.

전자 메일 처리를 배포하려는 것 같습니다. 이 경우 각 클라이언트를 중간 서버에 연결하여 다음 사용 가능한 메시지를 검색하도록 할 수 있습니다.

귀하의 제약 조건은 확실하지 않지만 전자 메일 외에 다른 방법으로 첨부 파일을받는 것을 고려할 수도 있습니다. 사람들이 파일을 업로드하는 경우 각 파일을 자동으로 처리 할 수있는 다음 응용 프로그램 인스턴스로 보내는 웹 양식을 설정할 수 있습니다.

+0

고맙습니다. 다른 서버로 다운로드하는 것은 지나치게 과부하가 될 수 있지만 메일을 모두 사용하지 않으려 고합니다. –

4

대신 IMAP 사용을 고려하십시오. 이는 클라이언트 - 서버 상호 작용을 위해 설계되었습니다.

+0

예, 대답은 정확히 IMHO입니다. Google이 지원합니다. – djangofan

2

RFC1939 (우체국 프로토콜 - 버전 3)에서 :

POP3는 서버 메일 광범위한 조작 작업을 제공하기위한 것이 아닙니다; 일반적으로 메일은 이며 다운로드 된 후 삭제됩니다. 보다 진보 된 (그리고 복잡한) 프로토콜 인 IMAP4는 RFC1730에서 논의됩니다.

2

POP3가 복수로 동시에 생성되었다고 생각하지 않습니다. 액세스.

자신에게 물어보십시오. 동일한 사서함에 여러 프로세스가 실제로 액세스해야합니까?

이렇게하면 이러한 프로세스가 서로 통신 할 수있는 방법을 찾아야합니다. 일반적인 데이터베이스 또는 서버 프로세스를 사용하여 작업을 조정하십시오.

IMAP 에 더 많은 옵션이 있지만 메일 하나를 "잠금"하여 처리중인 것으로 표시 할 수 있는지 확실하지 않습니다.

+0

그는 IMAP을 사용하여 전자 메일에 플래그를 설정할 수 있습니다.하지만이 방법도 100 % 신뢰할 수있는 방법이 아닙니다. – jsight

+0

IMAP는 즉시 또는 트랜잭션이 끝날 때 플래그를 설정합니까? – Stroboskop

+0

그는 서로를 알지 못하는 사이에 cron 또는 이와 유사한 방법을 통해 클라이언트를 다운로드하는 것으로 가장 가능성이 높습니다. –

0

POP3 연결을 유지해야하는 경우 이전에 다운로드 한 메시지 ID의 로컬 데이터베이스를 유지할 수 있습니다. 그런 다음 새 인스턴스를 다시 다운로드하기 전에이를 확인할 수 있습니다. IMAP은 다운로드하기 전에 읽음/읽지 않음 플래그를 설정할 수 있기 때문에 가장 좋은 해결책은 IMAP을 사용하는 것입니다.

0

다운로드를 시작하기 전에 메일을 읽음으로 표시 한 다음 다운로드를 시작할 수 있습니다.

+1

팝업이 지원하지 않습니다. –

+0

아, 그 부분을 잊어 버렸습니다. – aperkins