我想根据电子邮件的日期将所有收到的电子邮件组织到以下目录结构中:
ROOT --+-- YYYYMMDD --+-- HH --+-- mm --+-- YYYYMMDD-HHmmSS-000001
| | | |
| | | | ....
| | | |
| | | +-- YYYYMMDD-HHmmSS-NNNNNN
| | +-- mm --
| +-- HH --+-- mm --
请注意,每封电子邮件都将存储为单独的文件,文件名为 YYYYMMDD-HHmmss-NNNNN,其中 NNNNN 是连续数字。
procmail 或 maildrop 能做到这一点吗?如果不行,还有其他选择吗?
提前致谢。
答案1
如果你首先设置一个 cron 作业,那么你可以接近它:
* * * * * mkdir -p $ROOT/`date -d "now+1min" +%Y%m%d/%H/%M/`
然后使用 .forward 文件,如:
|cat >>$ROOT/`date +%Y%m%d/%H/%M/%Y%m%d-%H%M%S`
您最终会以每秒 mbox 格式的文件形式收到邮件。如果每秒收到多封邮件,您可以-%N
在 .forward 文件中的日期格式上标记一个,以在文件名中插入纳秒标记。如果每纳秒收到多封电子邮件……我帮不了你 :)
答案2
您还可以让 procmail 在收到电子邮件时运行命令,而不是通过 cron 作业。