[Postfixbuch-users] Matching in Body Checks

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Do Mai 31 14:22:07 CEST 2007


Beat Jucker wrote:
>> ich habe mal eine kurze Frage zu Body-Checks: Dort kann ich ja
>> im Body der Mail RegEx-Matching durchführen. Wenn ich dabei ein
>> Zeilenende matchen möchte sollte das ja so gehen:
>>
>> /...\n/   bzw. /...\r\n/
> 
> falsch
> 
> Zeilenende=$
> Zeilenanfang=^

Das ist nicht ganz korrekt. Es sollte eher heißen "Stringanfang" und
"Stringende". Bei Body_checks ist dies tatsächlich der Zeilenumbruch, bei
header_checks (und mime_header_checks) wäre dies jedoch nicht der Fall.
"man pcre_table" spricht auch von einer "logischen Zeile". Der String
umfasst dann alle Zeilen, die mit einem Whitespace beginnen (Tab,
Leerzeichen).

>> Ist es dabei auch irgendwie möglich auf das Ende der E-Mail 
>> zu matchen? 
> 
> Bsp:
> Zeilenede mit "xyz": /xyz$/
> Zeilenanfang mit "abc", etwas dazwischen, "xyz" am Ende: /^abc.*xyz$/

Er wollte das Ende der Email prüfen. Dies ist nicht möglich, da
body_checks jeweils nur eine Zeile prüft unabhängig von der Position (bis
$body_checks_size_limit erreicht ist).

Möglich ist vielleicht, einen charakteristischen Zeilenanfang zu nehmen
und nur dann das Muster zu prüfen. Das spart etwas CPU-Belastung.

Sinnvoller wäre aber sicher, so intensive Checks nur anzuwenden auf Mails,
welche dies Behandlung brauchen. Das ist eher eine Aufgabe für einen
benutzerdefinierten Transport auf ein Script. Body_checks werden auf jede
Mail angewandt, das ist für so eine Aufgabe wahrscheinlich nicht das
richtig Werkzeug.


-- 
Sandy

Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com




Mehr Informationen über die Mailingliste Postfixbuch-users