2009-04-17 1 views
6

저는 Perl에서 Net :: POP3를 사용하여 MS Exchange 서버의 사서함을 반복합니다. 각 메시지 번호에 대해 UIDL 명령을 실행하고 이전에 본 ID와 비교하여 이전에이 메시지를 처리했는지 확인합니다. 그러나 개별 POP3 사서함 내에서 동일한 UID가 여러 메시지에 대해 여러 번 나타납니다.MS Exchange POP3 UIDL 명령에서 제공하는 UID가 정말 고유합니까?

왜 이런 일이 벌어지고 있는지 알 수 있습니까? UID가 진정 고유하지 않습니까? 아니면 메시지가 어떻게 동일한 사서함에서 중복되고 있습니까?

답변

3

The RFC 말한다 :

는 우편함에 임의로 할당 된 고유-ID를 저장 서버 구현 위한 통상 바람직하지만, 본 명세서는 는 다음과 같이 계산 될 고유-ID를 허용하기위한 것이다 메시지의 해시. 메일 슬롯에있는 메시지의 동일한 사본 두 개가 동일한 고유 ID를 갖는 상황을 처리하려면 클라이언트에서 을 처리 할 수 ​​있어야합니다.

[나의 강조]

+0

감사합니다, 그건 내가 찾던 바로거야. 내가 이미 본 UID를 발견했을 때 나는 그것을 복제본으로 간주하고 메시지를 무시한다는 점에서 제대로 처리하고있는 것으로 보입니다. 접두사가되는 질문은 "이 중복 메시지는 어떻게 생깁니 까?"입니다. 그러나 그것은 원래 질문의 범위를 벗어납니다. –

+0

@Peter Wood 간단한 팁 - UID 조회가 대/소문자 일치를 찾고 있는지 확인하십시오. 기본 동작이 대소 문자를 구분하지 못하기 때문에 문제가 발생하여 코드가 특정 전자 메일을 부주의하게 무시하게되었습니다. –

+0

동일한 메시지의 시나리오가 실제 실제로 발생합니까? RFC에서이 구절을 읽었을 때 서버가 헤더에 쓰는 모든 타임 스탬프와 ID 때문에 엄격한 이론적 인 상황 일 것이라고 생각했습니다. – billpg

관련 문제