DotFiles/Mail/procmailrc
Procmail
Автораскладывалка списков рассылок
(рецепт имени ab@ в изложении raorn@):
~/.procmailrc:
:0: * !^X-List-Administrivia:.*yes.*$ * ^List-Id:.*<\/[^>]*>$ lists/`echo $MATCH | sed -f $MAILDIR/lists.sed`
$MAILDIR/lists.sed:
# Lowercate input... y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ # ALT Linux lists s/^\([^\.]*\)\(\.www\)\?\.\(altlinux\.\(ru\|com\|org\|net\)\|linux\.iplabs\.ru\)>\?$/alt-\1/; t end # LRN lists s/^\([^\.]*\)\(\.www\)\?\.\(lrn\.\(ru\|com\|org\|net\)\|linux\.ru\.net\)>\?$/lrn-\1/; t end # GNU/NonGNU s/^\([^\.]*\)\.\(non\)\?gnu\.org>\?$/gnu-\1/; t end # SourceForge s/^\([^\.]*\)\.lists\.sourceforge\.net>\?$/sf-\1/; t end # QuakeForge s/^\([^\.]*\)\.lists\.quakeforge\.net>\?$/qf-\1/; t end # Insert more patterns here... #s/^\([^\.]*\)\.blah\.bl.ah>\?$/blah-\1/; #t end # Default rule - prefix list with 2-level domain name s/^\([^\.]*\)\.\([^\.]*\.\)*\([^\.]*\)\.[^\.]*>\?$/\3-\1/; :end
Дупобойка
Порой бывает, что у кого-то где-то что-то и тут каак ввалит... писем с одинаковым Message-Id:. Помогает опять же рецепт имени ab@ -- вносить в самое начало ~/.procmailrc ;-)
# фильтруем дупы :0 Whc: msgid.lock | formail -D 65536 msgid.cache :0 a: duplicates
Но у этого метода есть одно неисправимое преимущество - будут отфильтрованы все кросспосты ("останется только один").
Письма древних
От специально (спамеры) или ненароком (разгильдяи) помеченных позапрошлым годом сообщений поможет вот такая домашняя заготовка ~/.procmailrc опять же имени ab@:
# сага по Alexander Bokovoy (ALT Linux): # Выбор почтового каталога в зависимости от даты письма :0 *$ ^Date:\/.* { INPUT = $MATCH LETTERDATE=`date --date="$MATCH" +"%s"` # Вот дата, с которой сравниваем ARCHIVEDATE=`date --date="7 days ago" +"%s"` ARCHIVEIT=`echo "$LETTERDATE < $ARCHIVEDATE" | bc` :0 * ARCHIVEIT ?? 1 { # Меняем почтовый каталог на архивный $HOME/mail/strange-old-mail } }