procmail이나 maildrop을 사용하여 이메일을 날짜별로 정리하세요.

procmail이나 maildrop을 사용하여 이메일을 날짜별로 정리하세요.

이메일 날짜를 기준으로 모든 수신 이메일을 다음 디렉토리 구조로 구성하고 싶습니다.

ROOT --+-- YYYYMMDD --+-- HH --+-- mm --+-- YYYYMMDD-HHmmSS-000001
       |              |        |        |
       |              |        |        |      ....
       |              |        |        |
       |              |        |        +-- YYYYMMDD-HHmmSS-NNNNNN
       |              |        +-- mm --
       |              +-- HH --+-- mm -- 

각 이메일은 파일 이름이 YYYYMMDD-HHmmss-NNNNN인 별도의 파일로 저장됩니다. 여기서 NNNNN은 연속된 숫자입니다.

procmail이나 maildrop이 이것을 할 수 있나요? 그렇지 않다면 어떤 다른 옵션이 있습니까?

미리 감사드립니다.

답변1

귀하의 모든 요구 사항을 충족할 수 있는 답변은 없으며 그 중 일부만 충족할 수 있습니다. 메시지 자체의 날짜 헤더 대신 메시지가 도착한 날짜를 사용하는 것으로 충분하고 날짜당 하나의 폴더로 충분하다면 maildrop을 사용하여 다음을 수행할 수 있습니다.

DEFAULT="$HOME/Maildir"
MAIL = "$HOME/Maildir"
DAY = `date +%d`
MONTH = `date +%m`
YEAR = `date +%y`
ARCHIVEFOLDER = $YEAR$MONTH$DATE
`test -d $MAIL/.$ARCHIVEFOLDER`
if ( $RETURNCODE != 0 )
{
`maildirmake -f $ARCHIVEFOLDER $MAIL`
}
# logfile "/tmp/maildrop"
# log $MAIL/.$SPAMORDNER
to $MAIL/.$ARCHIVEFOLDER
}

이 기초 위에 여러분이 성장할 수 있기를 바랍니다.

답변2

Python을 조금 알고 있다면 매우 간단한 연습이 될 것입니다.

Python에는 텍스트 파일에서 이메일을 자동으로 읽을 수 있는 표준 라이브러리의 이메일 패키지가 함께 제공됩니다.사용 가능한 객체로 구문 분석. 구문 분석한 후 그에 따라 출력할 수 있습니다(각 메시지에는 "as_string" 메소드가 있음).

기본 구조는 다음과 같습니다.

  1. 파일 반복
  2. 각 파일을 열고 이메일 객체로 구문 분석
  3. 날짜를 가져와서 필요한 필드로 분할하세요.
  4. 대상 파일 핸들을 엽니다(실행 번호는 마지막 숫자 + 1 또는 1입니다)
  5. msg.as_string()을 파일에 쓰기

관련 정보