(neu in 13.0.0)
Der Befehl compare_extended_field() prüft einen anzugebenden Wert gegen den Inhalt eines Extended Fields, beziehungsweise umgekehrt.
Dieser Befehl vergleicht den Wert (Default Value) des angegebenen Extended Field Namens (extended-field-name) mit Hilfe eines Vergleichsoperators (operator) mit einem angegebenen Wert (value).
Aufbau des Befehls
compare_extended_field('extended-field-name','operator','value');
Rückgabewert
positiv |
bei zutreffender Bedingung |
negativ |
bei nicht zutreffender Bedingung |
Parameter
extended-field-name
Name des Extended Field.
operator
Die Operatoren sind abhängig vom Datentyp (Type) des jeweiligen Extended Fields (String, Time, Integer, Hex, Boolean, Number), wobei generell jeder Ausdruck für jeden Datentyp funktioniert
Mögliche Werte:
Operator |
Beschreibung |
|||
---|---|---|---|---|
=~ |
== |
eq |
ist |
vergleicht auf Gleichheit / Übereinstimmung |
!~ |
!= |
ne |
ist nicht |
vergleicht auf Ungleichheit / Nicht-Übereinstimmung |
< |
lt |
kleiner |
||
> |
gt |
grösser |
||
<= |
le |
kleiner oder gleich |
||
>0 |
ge |
grösser oder gleich |
Beim Vergleichsoperationen wird bei ausgehenden E-Mails immer die Absender-E-Mail Adresse herangezogen, um das Extended Field der jeweiligen Managed Domain heranzuziehen.
Dementsprechend wird bei eingehenden E-Mails immer die Empfänger-E-Mail Adresse herangezogen. Enthält eine eingehende E-Mail Empfänger aus unterschiedlichen Managed Domains, so wird die E-Mail gesplittet. Der Vergleich findet dann mit dem Extended Field der jeweiligen Managed Domain statt.
Bei internen E-Mails (vergleiche internal()) - und ausschliesslich hier - kann durch Hinzufügen von
:s
bestimmt werden, dass das Extended Field des Senders, beziehungsweise durch
:r
das des Empfängers herangezogen werden soll.
Beim Datentyp (Type) «String» ist der Vergleich umkehrbar. Das heisst, nicht der Inhalt des extended-field-name wird mit dem Inhalt von value verglichen, sondern der Inhalt von value mit dem Inhalt des extended-field-name.
Hierfür ist dem Vergleichsoperator «:1» anzufügen.
Beinhaltet das Extended Field also einen Regulären Ausdruck, so kann dieser als Übereinstimmungsmuster verwendet werden.
value
Gibt den Vergleichswert, beziehungsweise bei Verwenden von «:1» den zu vergleichenden Wert an. Dabei sind Variablen zulässig.
Beispiel 1
Zeile |
Code |
---|---|
01 |
if (compare_extended_field('my-extended-field','=~:1','$subject')) { |
02 |
log(1,'The subject contains a five digit word, beginning with "b" and ending with"d"'); |
03 |
} |
Erklärung
Angenommen my-extended-field hat den Inhalt «(?i)(b...d)», also einen Regulären Ausdruck, welcher ohne Rücksicht auf Gross- oder Kleinschreibung alle fünfstelligen Wörter beschreibt, welche mit einem «b» beginnen und einem «d» enden.
Der Inhalt von value ist der Inhalt der Variable $subject, also der Betreff der E-Mail. Dieser soll «Die Person ist blind» lauten.
In Zeile 01 wird durch «:1» im operator =~ nicht der Inhalt des Extended Fields (my-extended-field) mit dem value ($subject) auf Gleichheit verglichen, sondern das value ($subject) mit dem Inhalt des Extended Fields (my-extended-field).
Da der Betreff ($subject) «Die Person ist blind» das Wort «blind» enthält, also ein ein Wort mit fünf Buchstaben, welches mit «b» beginnt und mit «d» endet und somit dem Regulären Ausdruck «(?i)(b...d)» aus dem Extended Field (my-extended-field) entspricht, wäre die Aussage wahr. Somit würde die Log-Meldung aus Zeile 02 geschrieben werden.