2012-05-10 2 views
0

Peter Huber's POP3 client을 사용하여 Gmail에 연결하고 메시지를 다운로드합니다.POP3 메시지 다시 받기

액세스되는받은 편지함은 코드 액세스에만 사용되는 트랜잭션받은 편지함입니다. 즉, 메시지가 첨부 된 주문 파일과 함께 제공되며, 코드는이를 처리 한 다음 메시지를 삭제합니다. 코드의 한 가지 규정은 DEBUG 플래그였습니다. 디버그 플래그가 없으면 나중에 디버그 플래그없이 프로그램을 다시 실행하고 메시지를 다시 처리 할 수 ​​있도록 코드가 메시지를 삭제하지 못하게합니다. 그래서, 내 코드에서 나는

If Not Arguments.Debug Then pop.DeleteEmail(eid)

이 잘 작동합니다. 문제는 메시지를 삭제하지 않더라도 프로그램을 다시 실행해도 메일을 다시 검색하지 않는다는 것입니다. Gmail에 로그인하고받은 편지함을 보면 여전히 나타납니다. 메시지를 다시 볼 수있는 유일한 방법은 같은받은 편지함으로 메시지를 다시 전달하는 것입니다. 그러나 Peter의 코드에서 나는 세션 사이에 보이는 메시지를 추적하고있는 곳을 어디에도 보지 못합니다.

Gmail의 끝 부분에서 수행되는 작업인가요? 동일한 클라이언트에게 두 번째 메시지 전달을 거부합니까? 그렇다면 이미 Gmail 계정을 변경할 수있는 방법이 있습니까? 메시지 목록을 검색 할 때받은 편지함의 모든 메일을 클라이언트에 표시합니다. Gmail 설정 화면에는 아무 것도 보이지 않습니다.

업데이트 : codeproject 페이지의 this comment에 따라 서버에 RSET 명령을 보내는 방법을 추가했습니다. 그런 다음 메시지를 검색 한 후 연결을 끊기 전에 내 새 Reset() 메서드를 호출하지만 ... 여전히 동일한 문제가 있습니다.

+1

나는 이것을 "후회하는 POP3 메시지"라고 처음 읽었고, 내가 후회하는 모든 전자 메일의 일을 시작했다. – Jason

+0

LOL - 첫 번째 사람은 그렇지 않다. B-) 하이픈이 그것을 더 명확하게하기를 희망한다. – eidylon

답변

0

좋아요 ... codeproject 프로젝트에 대한 의견 페이지를 읽은 후 "일종의"답변을 찾았습니다.

this comment에 따르면, RSET 명령은 gmail의 서버를 처리 할 때 실제로 아무 것도하지 않습니다. [email protected] : 그래서 대신에 로깅 [[email protected]]를 [최근에 로그인 :

은 "대답은"문자열 "최근"당신의 이름을 앞에 추가하는 것입니다 ]. 오히려 hackish, ...하지만 작동합니다.