/var/mail에서 한 번에 하나의 이메일을 읽는 방법

/var/mail에서 한 번에 하나의 이메일을 읽는 방법

/var/mail/에 5개의 메시지가 있고 한 번에 하나의 메시지를 읽은 후 다음 메시지로 이동하기 전에 해당 메일에서 문자열 검색을 수행하고 싶다고 가정해 보겠습니다. 한 번에 하나의 메시지를 구문 분석하는 데 사용할 수 있는 명령이 있습니까?

나는 mbox 파일의 모든 메시지를 읽은 다음 한 번에 하나씩 읽어서 메시지의 제목, 수신자, 발신자 및 상태(바운스 코드)를 추출할 수 있는 bash 스크립트를 작성하고 싶습니다. 내 계획은 grepmail을 사용하여 파일의 이메일 개수를 가져온 다음 for 루프에서 이 개수를 사용하여 한 번에 하나의 이메일을 가져오고 텍스트에 대한 작업을 수행하는 것입니다. 그것은 다음과 같습니다:

$count = grepmail -r . /var/mail/user | awk '{print $2}'
for($i=1;$i<=$count;$i++) {
    $content = *GetMessage* -number $i /var/mail/user
    ...
    Do string operation on this message & save to $DelimitedData
    ...
}
$Delimiteddata

한 번에 하나씩 메시지를 선택하여 문자열 작업을 수행하는 방법을 모르겠습니다. 누군가 비대화형으로 이 작업을 수행하는 데 도움이 될 수 있는 명령/프로그램을 안내해 줄 수 있습니까?

답변1

이것formail도구:프로그램 메일(모든 배포판에서 사용 가능하며 클래식입니다.) 이 목적을 위해 정확하게 설계되었습니다.

기본 사용법:

formail -s myprogram --option

myprogram --option각 이메일을 차례로 실행합니다. 프로그램은 표준 입력을 통해 각 메시지를 받습니다.

관련 정보