Hallo,
Ich versuche mal das Problem zu erklären. Ich filtere die Mails mit procmail. Dabei habe ich momentan für jede einzelne abonnierte Liste eine eigene Regel. Da die procmailrc nun aber recht beachtlche Länge erreicht hat und procmail leistungsfähiger ist, wollte ich die Listen-Mail automatisch sortieren:
:0 * ^List-Id: .*debian-.+.lists.debian.org * ^X-Mailing-List: <debian-/[^@]+ | /bin/sed 1d | ... :0 e { EXITCODE=75 HOST }
Nun hatte ich bis jetzt am Anfang der procmailrc die Aufrufe von cyrdeliver definiert. Der Teil sah also bis jetzt so aus:
MAILLIST_DEBIAN_DEVEL = "$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME.ml.debian.devel" MAILLIST_DEBIAN_DEVEL_A = "$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME.ml.debian.devel-announce"
Und wurde dann aufgerufen:
:0 * ^List-Id: .*debian-devel.lists.debian.org | /bin/sed 1d | $MAILLIST_DEBIAN_DEVEL
Nun dachte ich mir, ich könnte die Regel einfach so umformulieren, dass statt des Verzeichnisses, in dem die Mails landen sollen, nun die $MATCH-Variable steht:
MAILLIST_DEBIAN = "$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME.ml.debian.$MATCH"
:0 * ^List-Id: .*debian-.+.lists.debian.org * ^X-Mailing-List: <debian-/[^@]+ | /bin/sed 1d | $MAILLIST_DEBIAN :0 e { EXITCODE=75 HOST }
Leider scheint $MATCH gleich zu Beginn ersetzt zu werden, wo es ja noch keinen Wert hat, so dass der Aufruf am Ende nur noch
$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME.ml.debian.
lautet und die Mails landen im Nirvana (zumindest finde ich sie nicht (mehr)). Daher meine Frage: Kann ich meine Idee irgendwie umsetzen? Also den cyrdeliver-Aufruf nur 1x definieren? Oder muss ich den Aufruf immer nach der Regex setzen. Also so:
:0 * ^List-Id: .*debian-.+.lists.debian.org * ^X-Mailing-List: <debian-/[^@]+ | /bin/sed 1d | $DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME.ml.debian.$MATCH :0 e { EXITCODE=75 HOST }
Danke für alle Hinweise. Google half mir leider nicht, ein Beispiel für das, was ich hier tun will, zu finden. Ich hatte schon darüber nachgedacht, das "$"-Zeichen mit einem Escape zu versehen, so dass $MAILLIST_DEBIAN, wenn es in der regel aufgerufen wird, zu
$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME.ml.debian.$MATCH
expandiert. Aber das funktioniert dennoch nicht.
x-post an debian-user-german und die lug-dd (fup2 in beide Listen nicht notwendig - wenn ich eine Lösung habe, poste ich sie in beide Listen)
MfG Daniel
lug-dd@mailman.schlittermann.de