JavaScript aktivieren, um diese Seite anzuzeigen.

Der Befehl compare() prüft Werte in Header-Feldern auf einen zu definierenden Vergleichswert.

 

Dieser Befehl vergleicht den Inhalt eines Headers (header-field) mit Hilfe eines Vergleichsoperators (operator) mit einem angegebenen Wert (value)..

 

Aufbau des Befehls

 

compare('header-field','operator','value');

 

 

Rückgabewert

positiv

bei zutreffender Bedingung

negativ

bei nicht zutreffender Bedingung (siehe auch Hinweis zu value!)

 

Parameter

header-field

Gibt das Kopfzeilen-Feld an, dessen Inhalt gegen den Inhalt des Parameters value verglichen werden soll. Als Kopfzeilen-Felder können alle Header in einer E-Mail verwendet werden.

Mögliche Werte:

 

empty

anchor link Hinweis:

Header sind laut RFC case-insensitive. Dennoch wird das zu vergleichende 'header-field' in der eingetragenen Schreibweise ersetzt. Dies kann von Vorteil sein, wenn ein nachfolgendes System - entgegen des RFC - Groß- und/oder Kleinschreibung erwartet.

 

operator

Mögliche Werte:

equal        

vergleicht auf Gleichheit (case sensitive)

match        

prüft auf das Zutreffen eines regulären Ausdrucks (case insensitive!)

substitute

ist gleich wie match, entfernt aber den zutreffenden Teil von value aus header-field

 

empty

anchor link Hinweis:

Codierte Felder werden vor dem Vergleich decodiert. Die Sonderzeichen Tabulator, Wagenrücklauf, Zeilenvorschub und Seitenende werden vor einem Vergleich mit dem Operator equal entfernt.

 

value

Gibt den Wert an, gegen den verglichen werden soll. Dieser Wert kann auch ein regulärer Ausdruck sein.

 

empty

anchor link Hinweis:

Wird als value '' angegeben, so wird auch dann „true“ zurückgegeben, wenn der unter header-field angegebene Header gar nicht vorhanden ist!

Folgender Log-Eintrag wird generiert:

Compare with empty string - skip and return true

 

Beispiel 1

Zeile

Code

01

if (compare('x-smenc','equal','yes')) {

02

tagsubject('[confidential]');

03

}

 

Erklärung

Dieses Beispiel prüft, ob der Header x-smenc vorhanden ist und exakt den Wert yes beinhaltet (Zeile 01). Dies bedeutet nicht, dass der Wert yes lediglich vorhanden ist, sondern, dass der Wert ausschließlich yes beinhaltet.

Ist die abgefragte Kondition gegeben, wird die E-Mail für das Verschlüsseln markiert (Zeile 02).

 

Beispiel 2

Zeile

Code

01

if (compare('to','match','@customer\.de')) {

02

tagsubject('[nosign]');

03

}

 

Erklärung

Dieses Beispiel prüft bei einer ausgehenden E-Mail im header to mit dem Operator match auf das Vorhandensein der Domain @customer.de innerhalb der Empfänger E-Mail Adresse (Zeile 01). Wenn die E-Mail Adresse des Empfängers die Zeichenkette @customer.de enthält, dann ist der Rückgabewert von compare() true, im Betreff wird das Schlüsselwort (tag) [nosign] hinzugefügt (Zeile 02). Je nach Basiskonfiguration des Rulesets wird dadurch das Signieren der E-Mail unterdrückt.

 

Beispiel 3

Zeile

Code

01

compare('subject','substitute','(\s)*\[secure\]');

 

Erklärung

Dieses Beispiel prüft den Betreff (Header subject) einer E-Mail auf das Vorhandensein der Zeichenkette [secure] (als regulärer Ausdruck (\s)*\[secure\]). Wird diese Zeichenkette innerhalb des Betreff gefunden, so wird diese entfernt.

  

Tastaturnavigation

F7 für Tastaturnavigation
ALT halten und Buchstaben drücken

Diese Info: ALT+q
Seitentitel: ALT+t
Seiteninhalt: ALT+b
Inhalte: ALT+c
Suche: ALT+s
Ebene höher: ESC