[Postfixbuch-users] Postfix mit amavisd, "+"-Adress-Erweiterungen, Regex
Olaf Lautenschlaeger
postfix_users_ol_nospam at anova.de
Mi Jun 4 17:13:14 CEST 2008
Da es um einen "Produktionsserver" geht, an dem
ich meine Aenderung nur ungern einfach ausprobieren
will, haette ich zu dem ff. Problem mal Euren fachmaen-
nischen Rat:
Amavis erhaelt u. U. Mails mit erweiterten Adressen
user+subfolder at domain.tld von Postfix eingeliefert,
die es ggf. seinerseits zu
user+subfolder+spam at domain.tld
erweitern wuerde. Bei der lokalen Zustellung solcher Mails
moechte ich aber, dass diese in INBOX.SPAM und nicht in
INBOX.subfolder.SPAM einsortiert werden. Ggf. sollten auch
mehrere vorhandene "+subfolder"-Erweiterungen ausser
"+spam" eliminiert werden.
Bisher habe ich das mit expliziten Eintraegen in /etc/aliases
erledigt ("user+folder+spam: user+spam" fuer jeden User, der
zwecks autom. Einsortierung solche Subfolder hat), moechte
aber lieber einen Regex darauf ansetzen.
Weil nun der local-Agent (wg. Sicherheit, lt. Doc) nichts mit
PCRE am Hut hat, habe ich mir folgendes ueberlegt, und es
waere schoen, wenn mal jemand drueber schauen mag, ob
das so klappen koennte (den passenden Regex habe ich
IMHO schon zur Funktionstuechtigkeit getrieben, es geht
mir nur um die richtige Einbindung desselben in Postfix).
Der Regex soll vom Pickup-Service angewendet werden,
der die Mails von AmavisD zuruecknimmt; Frage: geht das
so in der master.cf:
...
# the amavisd pickup service:
localhost:10025
inet n - n - - smtpd
-o content_filter=
...
-o recipient_canonical_maps=pcre:foldback_AmDtags.pcre
...
-o local_header_rewrite_clients=
Oder kommt "r_c_m" wegen der letzten Zeile (leere "local_header_-
rewrite_clients"-Direktive) nicht zur Anwendung?
In "foldback_AmDtags.pcre" steht der betreffende Regex:
/^([-._%!A-Za-z0-9]+[^\+])\
(\+.*)+\+(banned|spam|virus)@(.*)$/ $1+$3@$4
diesen habe ich (mit Edmund Weitz' Regex-Coach) schon soweit
"elaboriert", dass er tut, was ich moechte, ich werde ihn aber
gleich doch noch mal erlaeutern, nur fuer den Fall, dass ihn
jemand fraglich findet - ansonsten kann der geneigte Leser ab
hier darueberhinweggehen.
Der ganze Regex soll nur matchen, wenn mehrere "+folder"-
Erweiterungen nach dem User-Namen folgen und die letzte
davon von AmavisD stammt. Nur diese soll dann in das
Ergebnis uebernommen werden.
Die erste Klammer hatte ich urspruenglich einfach als (.*)
schreiben wollen, aber Regex-Coach wollte mir dann
partout bei einem Test-Target
user+foo+bar+spam at domain.tld
$1=user+foo
$2=+bar
und nicht, wie von mir erwartet/beabsichtigt
$1=user
$2=+foo+bar
$3=spam
parsen. Daher matcht jetzt der obige, etwas kryptischere
Ausdruck auf den User-Part bis zum ersten Auftreten von "+".
Die zweite Klammer matcht auf "+foo+bar" (wird im Er-
gebnis weggelassen), die dritte auf "+spam" und die vierte
auf die Domain.
PS: In der Online-Doc scheint mir auf der Seite
/postconf.5.html#local_header_rewrite_clients
hinter "check_address_map" ein Fehler zu sein - jedenfalls
ist mir der Text dort nicht ganz schluessig (Firefox zeigt
dort zweimal hintereinander einen Link zu "type:table",
ist vielleicht der zweite einer zuviel oder fehlt der Text
hinter "check_address_map type:table"?).
Olaf Lautenschlaeger
--
ANOVA Multimedia Studios GmbH
fon: (+49) (0) 381 / 40 59 - 550
fax: (+49) (0) 381 / 40 59 - 551
web: www.anova.de
corporate e-mail: info at anova.de
_______________________________________
ANOVA Multimedia Studios GmbH
Geschaeftsfuehrer:
Prof. Dr. Hansgeorg Meissner,
Michael Kaeding,
Dr. Volker Gries
Firmensitz:
Joachim-Jungius-Strasse 10,
D-18059 Rostock / Germany
Registergericht:
Amtsgericht Rostock
Handelsregisternummer:
HRB 2788
UST-IdNummer:
DE 811577650
(footer size due to legal demands applying under german law)
Mehr Informationen über die Mailingliste Postfixbuch-users