2012-12-11 2 views
-1

다른 Google 계정으로 Google Apps 사서함을 복제하려고합니다. 나는 파이썬에서 IMAP 라이브러리를 사용하고있다.gmail IMAP 복제 사서함 : 동일한 UID를 사용하여 이메일이 중복됩니다.

각 사서함마다 고유 한 UID를 얻을 수 있습니다. 나는 thie UID를 사용하여 각 편지함에서 각 메시지를 다운로드 할 수 있습니다.

고유 UID는 계정별로가 아니라 사서함 당 문제입니다. 예를 들어 하나의 전자 메일은 두 개의 사서함에 있거나 두 개의 레이블을 가질 수 있습니다. 두 개의 별도 UID로 표시됩니다. 이메일을 두 번 다운로드하면 더 이상 같은 이메일이 아닙니다. 하나가 삭제되면 다른 하나는 남아있게됩니다.

Gmail에는 계정 당 고유 한 ID를 부여하는 X-GM-MSGID이 있습니다.

지금이 X-GM-MSGID를 얻는 방법은 UID를 받고 X-GM-MSGID를 요청하는 것입니다. 받은 편지함에 10,000 개의 이메일이있는 경우 이는 많은 요청이됩니다. 받은 편지함의 모든 전자 메일 또는 모든 사서함의 X-GM-MSGID를 모든 사서함에서 얻는 다른 방법이 있습니까?

나는 각 이메일의 고유 ID를 얻은 다음에는 플래그, 시간 및 각 이메일의 내용을 FETCH하여 새 서버에 추가 할 수 있다고 생각합니다.

답변

4

당신은 대량 가져 오기 사용하여 여러 개의 X-GM-MSGIDs 얻을 수 있습니다 :

FETCH 1:* X-GM-MSGID 

그러나, 더 나은 방법이있다.
모든 메일 폴더 (XLIST의 \AllMail)에서 완전히 작동하고 각 메시지에 대해 X-GM-LABELS를 FETCH 및 저장합니다.

+0

감사합니다. 따라서 \ AllMail에는 보낸 메일, 임시 보관함, 정크 메일 등 모든 것이 포함됩니다. – Mike

+0

@Mike : 스팸이나 휴지통은 포함되지 않습니다. – SLaks

+0

감사합니다 SLaks! (털이 한계 보풀) – Mike

관련 문제