Назад | Перейти на главную страницу

Организуйте электронную почту по дате с помощью procmail

Я хотел бы организовать всю входящую электронную почту в следующую структуру каталогов в зависимости от даты электронного письма:

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

Обратите внимание, что каждое электронное письмо будет сохранено в виде отдельного файла, и имя файла будет YYYYMMDD-HHmmss-NNNNN, где NNNNN - порядковый номер.

Может это сделать procmail или maildrop? Если нет, то какие еще есть варианты?

Заранее спасибо.

Вы также можете заставить procmail запускать команду после получения электронного письма, а не через задание cron.

Вы можете приблизиться, если сначала настроите задание 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, чтобы вставить наносекундную отметку в имя файла. Если вы получаете несколько писем за наносекунду ... Я не могу вам помочь :)