Hallo, On Fri, 22 Mar 2002, Martin Schmitz wrote:
David Haller
writes: [procmail]
Und die Syntax ist ebenfalls kinderleicht. Warum mußt Du sie dann erklären? Habe ich schon Maildropsyntax erklärt? (Wobei klar ist, daß man die Manpage lesen muß, um etwa das Pendent zu Procmails ^TO_ zu finden.)
Nein, hast du nicht, aber _mir_ musst du beide nicht erklaeren. Ich musste genauso mal lernen, was ein if ist, und wie man Muster in perl definiert, aber da ich inzwischen perl ein wenig kann, musst du mir's nicht erklaeren. Und zu procmail hab ich 'man procmailrc' einmal kurz ueberflogen. Und das hat auch schon gereicht.
Hm, wenn die procmail-Syntax so einfach ist, dann erklär' mich doch mal kurz und knapp, wie ich es hinbekomme, alle Absender auszufiltern, die in einer extra Datei zeilenweise aufgeführt sind (als egrep-fähige RegExp). Ich verzweifel gerade daran und im Netz hab' ich auch nichts wirklich brauchbares gefunden.
Extra Datei? Das geht _so_ AFAIK nicht, aber du kannst folgendes
verwenden:
In deiner ~/.procmailrc an der Stelle, wo du die Regel habe wolltest:
====
INCLUDERC=$PMDIR/spezielle.rc
====
(wobei du $PMDIR gesetzt haben musst, ansonsten nimm z.B. einfach
direkt das Verzeichnis, z.B. ~/.procmail)
Und in $PMDIR/spezielle.rc schreibst du dann z.B.:
====
:0
* ^FROM_(adr|adr2|...)
wohin_die_mails_sollen
====
Falls du unbedingt eine Zeilenweise definition haben willst, musst
du AFAIK die eigentliche regex dann generieren, aber das ist simpel,
da liessen sich dann z.B. wrapper-scripte bzw. aliase definieren um
eine Addy in das file mit den Adressen aufzunehmen... Ich nehm jetzt
einfach mal an, dass es ein spam-filter waere (du hast dir schon
www.rbl.org (?) angeschaut?)
==== ~/.procmail/spam_adrs.lst ====
foo@bar.tld
we_spam@foobar.com
# [..]
====
alias add_spam_adr='echo $@ >> ~/.procmail/spam_adrs.lst \
&& update_spam_filter.sh'
==== update_spam_filter.sh ====
#!/bin/sh
(
echo -e ':0\n* ^FROM_('
for a in `cat ~/.procmail/spam_adrs.lst`; do
echo "$a|"
done
echo -e ')\n/dev/null'
) | sed 's/|)/)/' > ~/.procmail/kill_spam.rc
====
==== ~/.procmailrc ====
[..]
INCLUDERC="~/.procmail/kill_spam.rc"
[..]
====
Um/statt das/dem alias 'add_spam_adr' koennte man sicher auch ein
script schreiben, dass sich z.B. aus mutt per shortcut aufrufen
liesse...
Ahja, ich wette, Thorsten kommt jetzt mit ner eleganteren Loesung
fuer maildrop/Mail::Audit daher (da man dort die
~/.procmail/spam_adrs.lst wohl per
my $spam_adrs = '(';
open(SPAM_ADRS, "<~/.procmail/spam_adrs.lst");
while(