我想根据电子邮件的日期将所有收到的电子邮件组织到以下目录结构中:
ROOT --+-- YYYYMMDD --+-- HH --+-- mm --+-- YYYYMMDD-HHmmSS-000001
| | | |
| | | | ....
| | | |
| | | +-- YYYYMMDD-HHmmSS-NNNNNN
| | +-- mm --
| +-- HH --+-- mm --
请注意,每封电子邮件都将存储为单独的文件,文件名为 YYYYMMDD-HHmmss-NNNNN,其中 NNNNN 是连续数字。
procmail 或 maildrop 能做到这一点吗?如果不行,还有其他选择吗?
提前致谢。
答案1
这可以使用 procmail 实现。以下是示例.procmailrc:
MAIL=$HOME/ROOT
VERBOSE=on
LOGFILE=$MAIL/procmail.log
DATE=`date +%Y%m%d`
HOUR=`date +%H`
MIN=`date +%M`
SLICE=$DATE/$HOUR/$MIN
MAILDIR=$MAIL
DEFAULT=$MAILDIR/$SLICE/
# Creates the slice if necessary.
DUMMY=`test -d $MAILDIR/$SLICE || mkdir -m 700 -p $MAILDIR/$SLICE`
提示:后面的斜线$DEFAULT
表示 Maildir 格式。如果您更喜欢 mbox,请将其删除。