mailx를 사용하여 POP3 서버의 모든 이메일을 단일 텍스트 파일로 다운로드하는 방법은 무엇입니까?

mailx를 사용하여 POP3 서버의 모든 이메일을 단일 텍스트 파일로 다운로드하는 방법은 무엇입니까?

이전 이메일 서버에서 모든 이메일을 다운로드하고 싶습니다. POP3를 사용하며 "받은 편지함" 및 "보낸 편지함" 폴더에 있는 이메일에 관심이 있습니다. 모든 이메일을 다운로드한 후 내 이메일 주소와 특정 이메일 주소 사이의 모든 이메일을 시간순으로 단일 텍스트 파일로 나열하는 스크립트를 만들고 싶습니다.

하지만 먼저 모든 메시지를 날짜가 포함된 헤더가 있는 파일로 다운로드한 다음 정렬 스크립트를 만들어야 한다고 생각합니다. 이 문제를 어떻게 처리합니까?

내 스크립트에서 mailx를 사용하여 메일을 보내고 있습니다. 그런데 mailx를 사용하여 POP3 서버의 모든 메일을 파일로 다운로드할 수 있습니까?

답변1

전통적인 mailx는 IMAP이나 POP를 지원하지 않지만 Linux와 함께 제공되는 것은 지원합니다.

특정 문제의 경우 대신 사용하는 것이 좋습니다 fetchmail. 당신은 그것을 사용할 수 있습니다--mdafetchmail다운로드한 각 메시지에 대해 선택한 스크립트를 실행하는 옵션입니다 . 명령줄에서 %F및를 자리 표시자로 사용하는 경우 "from" 및 "to" 주소를 매개변수로 스크립트에 전달할 수도 있습니다 .%T

먼저 mailsorter스크립트를 만듭니다.

#!/bin/sh

dest_mbox="$1"
from="$2"
to="$3"

case "$from-$to" in
  [email protected])
     echo "From $from  `date`" >> "$dest_mbox"
     cat >> "$dest_mbox"
     ;;
  *)
     cat > /dev/null
     ;;
esac

그런 다음 실행fetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

이 솔루션을 테스트할 때 fetchmail실수로 메시지를 삭제하지 않도록 제공하고 플래그를 지정하세요.--all--keep

관련 정보