이메일: mbox 이메일 메시지의 From_ 줄에 있는 날짜-시간 스탬프는 어디에서 왔습니까?

이메일: mbox 이메일 메시지의 From_ 줄에 있는 날짜-시간 스탬프는 어디에서 왔습니까?

저는 현재 이전 tenex 기반 메일 형식에서 mbox로 사서함 파일을 변환하는 프로그램을 개발 중입니다. tenex 메일박스 형식에는 mbox 형식과 유사한 구분 기호(From_ 행이라고 함)가 있습니다.

테넥스:

 7-Feb-86 21:41:21-EST,1925;000000000000

우편:

From [email protected] Fri Feb 07 14:20:00 1986

그러나 "tenex 형식" 파일의 구분된 줄에 있는 날짜-시간 스탬프의 출처는 문서 부족으로 인해 불분명합니다.

따라서 메시지를 tenex에서 mbox 형식으로 변환할 때 tenex 형식 파일의 구분 기호 줄에 있는 줄이 아닌 날짜 헤더 필드의 날짜 타임스탬프를 사용하여 mbox 형식 메시지의 From_ 줄을 구성합니다.

하지만RFC4155는 "the" mbox 형식(실제로는 여러 가지 다른 형식이 있음)을 설명하고 이 파일 형식에 대한 표준을 제공하려고 시도하며 다음과 같이 설명합니다.

각 메시지는 메시지 보낸 사람을 식별하고 최종 수신자(전송 경로의 마지막 홉 시스템 또는 수신자 역할을 하는 시스템)가 메시지를 받은 날짜와 시간도 식별하는 구분 기호 줄로 시작됩니다. 우체국).

따라서 날짜 헤더 필드에 날짜 타임스탬프를 사용하는 접근 방식이 올바른지 의심됩니다.

그러나 전송 봉투가 없으면 수신 메시지의 최종 수신자의 실제 날짜-시간 스탬프를 어디서 얻을 수 있습니까? "Received" 헤더 필드의 마지막 항목에 있는 날짜/시간 스탬프입니까?

답변1

"From_" 줄은 프로그램 mail.local(원래 mailUnix 7 버전에서 호출됨)에 의해 기록되며 타임스탬프는 메시지가 메일함에 기록된 실제 시간입니다.

"즉"최종 수신자가 메시지를 받은 날짜와 시간”는 실제로 메시지가 수신자의 메일함 파일에 기록되는 시간이며, 이는 메시지가 최종적으로 수신인에 의해 "수신"되는 시간입니다.

메시지 내용 앞에 초기 구분선을 "mbox" 파일에 쓰는 코드는 매우 문자 그대로입니다.

    time(&tval);
    fprintf(fp, "From %s %s", from, ctime(&tval));

따라서 TENEX 메일함의 구분선에 있는 타임스탬프도 "수신" 시간인 경우(즉,소나무 기술 설명말하다: 헤더의 시간은 메시지가 폴더에 기록된 시간입니다.) 그런 다음 다시 포맷하면 됩니다. 이러한 타임스탬프는 정확히 동일한 의미를 갖습니다.

답변2

수신된 이메일의 최종 수신자의 실제 날짜 타임스탬프는 어디서 확인할 수 있나요? "Received" 헤더 필드의 마지막 항목에 있는 날짜/시간 스탬프입니까?

일반적인 MTA 전송 상황에서 맨 앞의 From 줄(콜론 없음)은 전송 타임스탬프입니다. 없는 경우 고려해야 할 다른 옵션이 있습니다. 아마도 수신 MTA에 의해 봉투 헤더에 기록되었을 것입니다(정확한 세부 정보는 기억나지 않습니다). 또는 "Received" 헤더 필드를 신뢰하는 경우 맨 위(첫 번째) 헤더 필드여야 합니다. 날짜 필드가 실패하는 경우 전화 접속을 통한 UUCP와 같이 메일 배달이 매우 느릴 것으로 예상하지 않는 한 이는 합리적인 근사치를 제공해야 합니다.

관련 정보