On Sun, 09 Dec 2001, Florian Gross wrote:
* David Haller
textete am 09.12.01: [ _sehr_ viel! ]
HILFE!
*snigger* Hab ich da etwa ein "Alle Klarheiten beseitigt?" vergessen? *sowasaberauch*
Danke erstmal, ich werd's mir mal langsam auf der Zunge zergehen lassen... ;-)
*g* Wie gesagt, ich kenn mich da auch nicht aus, das war recht 'ad hoc' aus den genannten Quellen zusammengesucht und nachvollzogen. Was IMO der Knackpunkt bei dem Verstehen der "Rulesets" von sendmail ist, ist, wann man auf eine "Klasse" zugreift bzw. diese definiert (z.B. Defintion durch ein 'Cw localhost domain.tld foo.domain.tld' oder 'CGdomain.tld' Zugriff mit '$=w' oder '$=G', wann man eine "Variable" definiert bzw. darauf zugreift 'DMdomain.tld' bzw. '$M', und wann man auf das 'Match' eines 'Pattern' zugreift (Pattern: '$*', Match: '$1'). Die Metaelemente ('$*', '$-' usw.) der Pattern sind in dem genannten Abschnitt 5.1 erklaert, und entsprechen z.B. '*' in Regexen... Dann muss man nur noch das 'R' am Zeilenanfang als s/// begreifen, und schon loest sich ein Grossteil der Verstaendnisschwierigkeiten in Luft auf (zumindest ging's mir so ;). Einzig die Trennung von 'pattern' (Right-Hand-Side "RHS"), 'Replacement' (Left-Hand-Side "LHS") und Kommentar ist auch mir noch schleierhaft -- ich hab allerdings auch nicht auf Tabs vs. Leerzeichen geachtet... Jedenfalls liest sich dann ein R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain[1] in Perl-aehnlicher Syntax als: s/(.*) < @ localhost > (.*) / $1 < @ $j . > $2; # no domain wobei $j ein Zugriff auf die mit 'Dj' definierte Variable 'j' ist :) (Zur Bedeutung von '$:' (bzw. '$@'), siehe op.txt). Achso, ja, latuernich! "Klasse"... Das ist, soweit ich's verstehe, einfach eine 'veroderterte' Variable. Ein CX foo bar baz [..] R$=X $: $1 in sendmail wuerde man in Perl wohl als $X_REGEX = '(foo|bar|baz)'; [..] s/$X_REGEX/$1/; und ein DMfoo.bar.de [..] R$* $: $M als $M = 'foo.bar.de'; [..] s/(.*)/$M/; schreiben... (AFAIK, so wie alles andere auch) Allerdings sind (denke ich) die Pattern in sendmail _nicht_ "greedy"... Wenn man o.g. mal geschnallt hat, dann wird auf einmal der Grossteil der 'ach so kryptischen' sendmail.cf recht "einfach" (zumindest prinzipiell -- Pattern/Match replacemenst ueber diverse subs (aka "rulesets") ist komplex -- nicht aber die eigentliche Syntax :) Sachen wie P, O, H, und T sind ja eh schon kommentiert bzw. IMO offensichtlich (selbst ohne in die Doku zu schauen), F und K kann man (dito) erahnen, M ist offensichtlich die Def. eines "Mailer"s und V ist, naja, aehm, unwichtig? ;) Einzig die Syntax einer Mailerdefinition hab ich mir noch nicht genauer angeschaut... Wobei sich die Bedeutung z.B. von Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40, T=DNS/RFC822/X-Unix, A=procmail -a $h -d $u in grossen Teilen schon erahnen laesst... Ok, Das 'F=' _ist_ obskur... 'S=' ist wohl -- wie gesagt, ich habe _nicht_ in die Doku geschaut(!) -- die Definition der anzuwendenden Rulesets fuer den '_S_ender', 'R=' der auf den '_R_ecipient' anzuwendenden... 'T=' wird wohl fuer den '_T_ype' stehen, bei dem dieser Mailer verwendbar bzw. anzuwenden ist, 'A=' definiert wohl die zu uebergebenden '_A_rguments' (mit Zugriff auf die Variablen $h (host?) und $u (user?)... 'P=' fuer ('_P_rogram' oder '_P_ath') ist offensichtlich ;) Naja, so ergibt sich eins aus dem anderen.. ;) HTH, -dnh, diesmal eine _nicht_-Zufalls Sig einfuegend :) PS: Noe, jetzt, nach einem gruendlicheren Blick auf die sendmail.cf, sowie einen fluechtigen auf die sendmail-Doku, wuerde ich dem unbekannten Verfasser der Sig doch glatt widersprechen :)) [1] obige Zeile ist bei mir die erste des: 'Ruleset 96 -- bottom half of ruleset 3' das mit 'S96' begonnen wird (siehe wiederum op.txt -> 5.1). -- When I first started working with sendmail, I was convinced that the cf file had been created by someone bashing their head on the keyboard. After a week, I realised this was, indeed, almost certainly the case. -- Unknown