메일 메시지를 저장하는 가장 일반적인 형식은 mbox 형식입니다. MBOX는 MailBOX의 약자입니다. mbox는 0 개 이상의 메일 메시지가 포함 된 단일 파일입니다.
mbox 형식
전자 메일을 저장하기 위해 mbox 형식을 사용하면 모든 파일을 하나의 파일에 저장합니다. 이것은 다소 긴 텍스트 파일을 생성합니다 (인터넷 전자 메일은 항상 7 비트 ASCII 텍스트로만 존재하며 다른 모든 것은 첨부 파일입니다). 우리는 어디에서 끝나고 다른 시작을 알 수 있습니까?
다행히도 모든 이메일에는 처음부터 최소한 하나의 발신자가 있습니다. 모든 메시지는 "보낸 사람"으로 시작합니다. (공백 문자가 이어지며 From_ 라인이라고도 함). 줄의 시작 부분에있는이 시퀀스 ( "From") 앞에 빈 줄이 오거나 파일의 맨 위에 있으면 메시지의 시작을 발견했습니다.
그래서 mbox 파일을 파싱 할 때 우리가 찾는 것은 본질적으로 "From"다음에 빈 줄입니다.
정규 표현식으로 " n nFrom. * n"이라고 쓸 수 있습니다. 첫 번째 메시지 만 다릅니다. 줄 시작 부분 ( "^ From. * n")에서 "From"으로 시작됩니다.
몸에서 "에서"
위의 시퀀스가 전자 메일 메시지의 본문에 정확히 나타나면 어떻게해야합니까? 다음 내용이 전자 메일의 일부인 경우 어떻게합니까?
- … 가장 최근 보고서를 보내 드리겠습니다.
- 이 보고서에서 당신은 …
여기에는 빈 줄 뒤에 줄의 시작 부분에 "From"이옵니다. 이것이 mbox 파일에 나타나면, 우리는 틀림없이 새로운 메시지의 시작 부분을 가지고 있습니다. 적어도 그것은 파서가 생각하는 것과 왜 이메일 클라이언트와 우리 모두가 발신자도 수신자도 포함하지 않고 "From this Report"로 시작하는 전자 메일 메시지와 혼동을 일으킬 것입니다.
이러한 비참한 상황을 피하려면 이메일 본문의 빈 줄 다음에 줄의 처음에 "보낸 사람"이 나타나지 않도록해야합니다.
mbox 파일에 새 메시지를 추가 할 때마다 본문에서 이러한 시퀀스를 찾고 "From"을 "> From"로 바꿉니다. 이것은 오해를 불러 일으 킵니다. 위의 예제는 이제 다음과 같이 보이며 더 이상 파서를 트리거하지 않습니다.
- … 가장 최근 보고서를 보내 드리겠습니다.
- >이 보고서에서, 당신은 …
이러한 이유로 "From"을 단순한 "From"을 기대하는 이메일에서 찾을 수 있습니다.