Hilfethemen
Hilfethemen
Regeln für Nachrichten in Mail-Server 2.x Regeln
Veröffentlicht von am 25 June 2014 14:52

Jede Regel verfügt über folgende Attribute

String: name

OPERATOR TYPE: UND oder ODER

 

Jede Regel enthält einen Ausdruck, der aus einer Liste von Bedingungen und Aktionen besteht. Der Ausdruck kann leer sein, dann werden alle Aktionen ausgeführt, wenn die Regel erreicht wird. Die Liste muss mindestens eine Aktion enthalten.

 

Bedingungen

 

Allgemeine (in Klammern sind mögliche Varianten der Operationen bezüglich der Eingabeparameter angegeben):

Subject (Equals/Not Equals/Contains/Not Contains/Matches RegEx)

Eingabeparameter: String

From (Contains/Not Contains/Matches RegEx)
Eingabeparameter: String

To (Contains/Not Contains/Matches RegEx)
Eingabeparameter: String

CC (Contains/Not Contains/Matches RegEx)
Eingabeparameter: String

Message Body (Contains/Not Contains/Matches RegEx)
Eingabeparameter: String

Message Size (Greater/Lesser)
Eingabeparameter: INT

Message Attachment (Greater/Lesser/Executable/Not Executable)
Eingabeparameter:
Greater oder Lesser: INT

Message AttachmentName (MatchesRegEx/MatchesFileMask)
Eingabeparameter: String
Für den Parameter MatchesFileMask wird bei der Erstellung ein Standartwert durch die Konsole festgelegt "
.".

Antispam (in Klammern sind mögliche Varianten der Bedeutung angegeben):
SURBL (Clear/Suspicious/Spam)
CommTouch (Clear/Suspicious/Spam)

Antivirus (in Klammern sind mögliche Varianten der Bedeutung angegeben):
Kaspersky Antivirus (Clear/Suspicious/Infected)
Panda Antivirus (Clear/Suspicious/Infected)

Die Antivirus und Antispam Liste ist dynamisch, und wird durch die Konsole beim Übergang auf die entsprechende Seite in der Ordnung der installierten Schnittstellen angefordert.

Die Antispam- und Antivirus-Module führen eine Überprüfung beim ersten Zugriff auf das entsprechende Modul durch. In der Folge wird das Ergebnis genommen.

Wenn das Produkt aus irgendeinem Grund nicht arbeiten kann, z.B. bei Ablauf der Lizenz, wird das Ergebnis als Clear behandelt.

Aktionen

Delete
Entfernt die Nachricht
Umsetzung der Regeln endet

Forward
Weiterleiten der Nachricht
Umsetzung der Regeln endet

Eingabeparameter:
String: To Address

Copy
Eingabeparameter:
String: To Address

Reply

Eingabeparameter:
String: From Address
String: Subject
String: Body

Move to IMAP folder
Eingabeparameter:
String: FOLDER_NAME
Verschiebt die Nachricht in den Ordner namens FOLDER_NAME

Stop
Umsetzung der Regeln endet
Wird als erfolgreicher Durchlauf der gesamten Regeln behandelt.
Wenn es in der Regel Aktionen nach der Aktion STOP gibt, werden diese nicht ausgeführt.

Jump
Eingabeparameter:
String: NAME_REGEL

Fordert das Regelmodul auf, zur Regel mit dem angegebenen Namen zu springen. Die Regel wird auf der Liste nur weiter nach unten gesucht. Sie können nicht zur bereits durchgeführten Regel zurückgehen. Die Konsole sollte einen Fehler ausgeben, wenn eine Regel mit dem angegebenen Namen nicht auf der Liste steht. Wenn das Regelmodul keine Regel mit dem gewünschten Namen findet, beendet es seine Arbeit und das Ergebnis entspricht der Aktion STOP.

 

Wenn es Aktionen nach der Aktion Jump gibt, werden diese nicht ausgeführt.

Notify
Eingabeparameter:
String: To Address

Wird eine E-Mail gesendet mit der Information, die aus den Ergebnissen der Bedingung generiert wird.

Add X Header
Eingabeparameter:
String: NAME_HEADER
String: INHALT_HEADER

Verarbeitungsreihenfolge der Regeln

Im Falle des Operators UND werden die Bedingungen bis zum ersten „unwahr“ überprüft. Im Falle des Operators ODER werden die Bedingungen bis zum ersten „wahr“ überprüft.

 

Regeln werden in der Reihenfolge ausgeführt, in der sie sich in der Warteschlange befinden. Die Konsole muss in der Lage sein, die Regeln in einer Warteschlange neu anzuordnen, was einer Prioritätsänderung entspricht, und sich auf die Reihenfolge der Ausführung auswirkt. Dabei muss die Richtigkeit des JUMP-Befehls überprüft werden. Ebenfalls müssen mittels der Konsole auch alle JUMP-Aktionen angepasst werden, welche auf eine umbenannte Regel verweisen.

 

Wenn die Bedingungen als "WAHR" erfüllt sind, werden die in der Regel enthaltenen Aktionen ausgeführt. Wenn die Bedingungen "UNWAHR" sind, wird ein Übergang auf die nächste Regel vollzogen.

Logic mit angehängten Dateien

Für jede angehängte Datei gibt es ein Ergebnis-Flag. Der anfängliche Wert dieses Flags steht auf TRUE bei der UND Logik, und auf FALSE bei der ODER Logik. Bei jeder E-Mail gibt es demnach ein Nachrichten-Flag und ein Flag-Vektor mit der Anzahl der Elemente aus der Anzahl der Anhänge.

 

Bei der Überprüfung der Bedingung für den Anhang, gilt sie als TRUE, wenn sich mindestens ein Flag für den Anhang im Zustand TRUE befindet.

 

Vor jeder Aktivität, die mit Anhängen für Anhang-Vektor-Flags arbeitet, wird eine Konjunktion oder Disjunktion (je nach Operationstyp in der Regel) mit dem Nachrichten-Flag durchgeführt, in dem das kumulierte Ergebnis anhangbezogener Bedingungen(FieldFrom, FieldTo, und andere) angesammelt ist.

 

Während der Ausführung von Aktionen wird der Anhang-Vektor-Flag nur durch spezialisierte Aktionen analysiert, zum Beispiel: DeleteAttachment. Aktionen wie DeleteMessage ignorieren diesen Vektor.

 

Beispiel 1:

IF (FieldFrom CONTENTS "hello") AND (AttachmentSize<10000) THEN
BEGIN
// Aktionen werden durchgeführt, wenn das Feld From folgendes enthält "hello" und
//
 mindestens einen Anhang < 10000

// Entfernt werden nur Anhänge mit einer Größe von < 10000.
DeleteAttachment
// Bei der Ausführung der Aktion Notify
wird sie ohne Analyse des Anhang-Flags ausgeführt.
Notify
END

 

Beispiel 2:

IF (FieldFrom CONTENTS "hello") OR (AttachmentSize<10000) THEN
BEGIN
// Aktionen werden ausgeführt, wenn das Feld From folgendes enthält "hello" oder
//
 wenigstens ein Anhang < 10000

// Entfernt werden nur Anhänge mit einer Größe von < 10000.
DeleteAttachment

// Bei der Ausführung der Aktion Notify wird sie ohne Analyse des Anhang-Flags ausgeführt.
Notify
END

Beispiel 3:

IF (FieldFrom CONTENTS "hello") OR (AttachmentSize<10000) OR (Attachment With Virus) THEN
BEGIN
// Aktionen werden ausgeführt, wenn das Feld From folgendes enthält "hello" oder
//
 wenigstens ein Anhang < 10000

// Entfernt werden nur Anhänge mit einer Größe von < 10000.
DeleteAttachment

// Bei der Ausführung der Aktion Notify wird sie ohne Analyse des Anhang-Flags ausgeführt.
Notify
END

Im Falle, dass es mehrere Bedingungen zu den angehängten Dateien gibt, ist der Algorithmus folgender:

2 Anhänge. Status des Vektrors wird bezeichnet als (0, 0)

UND Logik:

Initialisieren des Anhang-Flag-Vektors nach (1, 1)

IF (FieldFrom nicht beinhaltet "hello") THEN
Beenden_Ausführen_Bedingung;

Nehmen wir an der erste Anhang <10000, und der zweite nicht, dann ist der neue Vektor

(1, 1) &= (1, 0) ==> (1&=1, 1&=0) ==> (1, 0) (neuer Status des Anhang-Flag-Vektors)

Da mindestens ein Element im Vektor nicht NULL ist, wird die Prüfung der Voraussetzungen fortgesetzt.

Nun, da der Vektor (1, 0) lautet, und wenn der erste Anhang keine Viren enthält, wird die Aktion nicht durchgeführt.

Nehmen wir an, dass beide Anhänge einen Virus enthalten.

(1, 0) &= (1, 1) ==> (1&=1, 0&=1) ==> (1, 0)

Vor der Ausführung von DeleteAttachment, wird für den gesamten Vektor die Operation &=1 (da FieldFrom CONTENTS "hello" eine anhangunabhängige Bedingung ist, und das Ergebnis im Nachrichten-Flag sein wird) ausgeführt, was als Ergebnis den selben Vektor ausgibt (1, 0).

 

Auf diese Weise wird 1 Anhang entfernt.

ODER Logik:

Initialisieren des Anhang-Flag-Vektors nach (0, 0)

Das Ergebnis der Ausführung der ersten Bedingung geht in das resultierende Nachrichten-Ergebnis-Flag.

Nehmen wir an, dass die zweite Bedingung (1, 0), die dritte (1, 0), dann ist der resultierende Anhang-Flag-Vektor

(1, 0). Vor der Ausführung von DeleteAttachment wird diese Aktion durchgeführt AF |= MF, wobei AF der Anhang-Flag-Vektor ist und MF das angesammelte Resultat der anhangunabhängigen Bedingungen (im aktuellen Fall von der ersten Bedingung) ist.

 

Beispiel 4:

IF(AND) (FieldFrom CONTENTS "hello") THEN
BEGIN
// wenn die Bedingung WAHR ist, werden alle Anhänge entfernt
// wenn die Bedingung UNWAHR ist, dann kommen wir hier nicht an
END

Beispiel 5:

IF(OR) (FieldFrom CONTENTS "hello") THEN
BEGIN
DeleteAttachment

// wenn die Bedingung UNWAHR ist, dann kommen wir hier nicht an
// wenn die Bedingung WAHR ist, dann werden alle Anhänge entfernt,
// da der Anhang-Vektor (0, 0) |= Bedeutung des angesammelten
// Resultats für anhangunabhängige Bedingungen.
END

Überprüfung der Validierungsregeln

Die Überprüfung der Validierung liegt auf der Konsole. Der Server kann nur eine Liste mit Regeln senden oder erhalten. Eine Überprüfung führt der Server nicht durch.

Beispiele

Wenn eine Überprüfung der E-Mail mit einem Antivirus erforderlich ist, die eine bestimmte Größe unterschreitet, kann eine Bedingung erstellen werden:

IF MessageSize<10000 AND KAV==Virus THEN DeleteMessage.

Mit dieser Regel wird ein Brief vom Antivirus nur gescannt, wenn die Größe weniger als 10000 Bytes beträgt.

Eintrag in die Konfigurationsdatei

Codierung: UTF-8. Abhängig von Groß- und Kleinschreibung

Legende:
<
tag attribute="valueparameter_attribute="typename"/>

rule name="stringenabled="true|false"

  • expression op="and|or"

    • condition

      • match:

        • Contains

          • field

          • value

        • NotContains

          • field

          • value

        • Equals

          • field

          • value

        • NotEquals

          • field

          • value

        • Lesser

          • field

          • value

        • Greater

          • field

          • value

        • MatchesRegEx

          • field

          • value

        • MatchesRegExTemplate

          • field

          • value

        • MatchesFileMask

          • field

          • value

        • Clean

          • plugin

        • Suspicious

          • plugin

        • Infected

          • plugin

        • Spam

          • plugin

        • Bulk

          • plugin

      • field: // used when match!="Clean|Suspicious|Infected|Spam|Bulk"

        • Sender

          • value="string"

        • To

          • value="string"

        • CC

          • value="string"

        • BCC

          • value="string"

        • Recipient

          • value="string"

        • Subject

          • value="string"

        • MessageBody

          • value="string"

        • MessageSize

          • value="uint32"

        • Attachment

          • none

        • AttachmentExt

          • value="string" ="ext,ext,ext"

        • SenderDomain

          • value="string" ="domain"

      • plugin: // used when match="Clean|Suspicious|Infected|Spam|Bulk"

        • Kav

        • Panda

        • CloudAntispam

        • CloudAntivirus

        • SpamAssassin

        • Surbl

  • actions

    • action

      • type:

        • Delete

          • none

        • Forward

          • recipient="string"

        • Copy

          • recipient="string"

        • Reply

          • sender="string"

          • subject="string"

          • body="string"

        • MoveToIMAPFolder

          • folder="string"

        • StopProcessing

          • none

        • JumpToRule

          • rule="string"

        • Notify

          • recipient="string"

          • subject="string"

          • body="string"

        • AddHeader

          • name="string"

          • text="string"

        • DeleteAttachment

          • none

        • PrefixSubject

          • text="string"

        • MaskSenderDomain

          • from="string"

          • to="string"

<mscfg>

<rules>

<rule name="Rule Name 1" enabled="true">

<expression op="and">

<condition field="Sender" match="Equals" value="oper@oper.ru"/>

<condition field="Subject" match="Contains" value="hello"/>

<condition plugin="Kav" match="Clean"/>

</expression>

<actions>

<action type="PrefixSubject" text="приветик: "/>

</actions>

</rule>

<rule name="Rule Name 2" enabled="true">

<expression op="or">

<!-- ... conditions ... -->

</expression>

<actions>

<!-- ... actions ... -->

</actions>

</rule>

 

<!-- ... rules ... -->

 

<rule name="Rule Name N">

<!-- ... -->

</rule>

</rules>

</mscfg>

(0 Bewerten)
Dieser Artikel war hilfreich
Dieser Artikel war nicht hilfreich

Kommentare (0)

Copyright © 2001-2021 UserGate, Inc

Terms of use   Privacy policy