2016-03-23 7 views
0

Postfix und Regex Experten:Postfix Körper Checks Regex Beispiel benötigt

Ich habe eine Verpflichtung zu verwenden Postfix Stelle prüft eine leere alt = „“ Parameter zu einem Image-Link in den Körper von versendeten E-Mails hinzuzufügen. (Ich habe keine Kontrolle über die Erzeugung des Bildlink). Hier ist ein Auszug aus dem E-Mail-Körper:

<img src=3D"http://xxxxxxx.com:81/OT000001MQ=3D=3D.GIF?D=3D2016-03-23" wid= 
th=3D"1" height=3D"1"/> 

Ich brauche Postfix Body Check hinzuzufügen und leer alt Parameter alt=3D"" zu diesem Link für Verbesserung der SPAM-Testergebnisse.

ich mit diesem Körper gelingt es überprüfen Regex, aber es ist eine hässliche Lösung:

/height=3D"1"/ REPLACE th=3D"1" height=3D"1" alt=3D""/> 

Meine regex die gesamte Linie des Körpers Text auswählen. Könnten Sie bitte einen besseren Regex vorschlagen? Vielen Dank.

+2

Soweit ich verstehe, versuchen Sie [diese Art von Ersatz?] (Https://regex101.com/r/gS9xR4/2) –

+0

Vielen Dank für das Beispiel. – STWilson

+0

Löst das dein Problem? –

Antwort

1

"Meine Regex wählt die gesamte Zeile des Textkörpers." Wenn Sie Sie bedeuten wollen nicht die ganze Zeile in der Ersetzungstext schreiben, können Sie das tun backreferences mit:

/(.* height=3D"1")(.*)/ REPLACE $1 alt=3D"" $2 

Sie können diese Technik im ersten Beispiel auf the man page verwendet sehen, die verwendet $2 und $4 . Dies sollte mit den regulären Ausdrücken basic und PCRE funktionieren.

Dies ist jedoch keine sehr genaue Übereinstimmung; alles, was in seinem HTML-Code height="1" angibt, wird abgefangen und geändert. Eine Übereinstimmung mit der URL des bestimmten Bildes wäre eine bessere Wahl.

+0

Ergebnis: '/(.* Höhe = 3D" 1 ") (\ />)/ERSETZEN $ 1 alt = 3D" "$ 2" Danke. Ich verstehe Ihren Rat und sehe keinen Weg, die Regel auf den Absender zu beschränken. Ich denke, Kollateralschaden mit diesem Hack sollte nicht sein. – STWilson