이메일 날짜를 기준으로 모든 수신 이메일을 다음 디렉토리 구조로 구성하고 싶습니다.
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 또는 1입니다)
- msg.as_string()을 파일에 쓰기