리눅스2023. 10. 5. 13:25

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/664726 (2023.2.14)

리눅스에서 eml 파일의 내용을 추출하는 방법이다. mpack 패키지를 설치해서 작업할 수 있다. 데비안/우분투 계열 배포판일 경우 아래와 같이 설치하면 되겠다.

# S/W저장소 정보 갱신
sudo apt-get update

# mpack 패키지 설치
sudo apt-get install mpack

내용 추출은 munpack으로 가능하며, -t 옵션을 추가하면 텍스트/html 부분도 추출해 준다. my_email.eml 파일의 내용을 추출하려면 아래와 같이 할 수 있다.

munpack -t my_email.eml
part1 (text/plain)
part2 (text/html)

위의 경우 텍스트 부분은 part1, html 부분을 part2라는 파일로 저장된 것이다. 첨부 파일이 있을 경우 당연히 별도의 파일로 추출되어 저장된다. 만약 eml 파일이 여러개라면, 아래와 같이 각 파일별로 디렉토리를 만들고 내용을 추출하는 스크립트를 만들면 조금 더 편리하다.

for file in `ls | grep "\.eml$"`
do
  unpacked_dir="$file.unpacked"
  mkdir "$unpacked_dir"
  cd "$unpacked_dir"
  munpack -t ../$file > $file.log
  cd ..
done

위의 스크립트가 어떻게 동작하는지 간략히 설명하자면 이렇다. 예를 들어 파일명이 my_email.eml이라면, my_email.eml.unpacked라는 디렉토리를 만든후 이 디렉토리에 내용을 추출한다. 추출하면서 출력되는 내용은 my_email.eml.log 파일에 저장하게 된다.

728x90
Posted by 반달가면