Makros sind Codeblöcke, welche einmalig definiert (siehe auch Mail Processing Ruleset generator Custom commands Custom macros and commands for all e-mails BEFORE processing:) und im Anschluss beliebig oft in den Custom Commands verwendet werden können.
Makros
•können jederzeit definiert werden und sind global gültig.
•können erst verwendet werden, nachdem sie deklariert wurden.
•können nicht redeklariert werden, das heißt ist bereits ein Makro mit gleichem Namen vorhanden, wird dieses nicht überschrieben.
•enthalten komplette Codeblöcke, das heißt sie können nicht als Variablen in Funktionen verwendet werden.
•können ineinander verschachtelt werden.
•können beliebig oft aufgerufen werden.
•werden zur Compile-Time - also beim Generieren eines neuen Rulesets (siehe auch Mail Processing Ruleset generator Save and Create ruleset) - gelesen und expandiert.
•mit falscher Syntax verhindern das Generieren eines Rulesets.
•mit korrekter Syntax, welche jedoch nicht verwendet werden, erzeugen beim Generieren des Rulesets keinen Code.
•dürfen keine Vordefinierte Funktionen enthalten.
Aufbau eines Makros
<Name_des_Makros> = {
Codeblock
};
Abruf eines Makros
$<Name_des_Makros>;
Beispiel
Zeile |
Code |
---|---|
01 |
my_encrption = { |
02 |
if (smime_keys_avail()) { |
03 |
log(1,'S/MIME certificate available for recipient(s) $to'); |
04 |
if (encrypt_smime()) { |
05 |
log(1,'e-mail successfully S/MIME encrypted'); |
06 |
} else { |
07 |
log(1,'e-mail could not be S/MIME encrypted'); |
08 |
} |
09 |
} else { |
10 |
log(1,'no S/MIME certificate available for recipient(s) $to'); |
12 |
} |
13 |
}; |
Abruf des Makros (in jedem beliebigen Custom commands, gegebenenfalls auch verschachtelt in weiteren Makros):
Zeile |
Code |
---|---|
01 |
$my_encrption; |
02 |
deliver(); |