Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core für Entwickler > agorum core JavaScript-API


JavaScript-Bibliothek agorum.mail.filter/js/lib/mail-filter

Diese JavaScript-Bibliothek ermöglicht es, automatisch Aktionen auf eingehende und ausgehende E-Mails durchzuführen. Sie können damit auch E-Mails filtern, die über den Mailadapter geholt werden, nicht nur E-Mails, die über einen Mail-Relay-Server verarbeitet werden. Sie können dadurch E-Mail-Filteraktionen automatisiert ausführen, etwa in agorum.tasks, und eingehende oder ausgehende E-Mails verschieben oder weiterverarbeiten.

Die Bibliothek liest die für den Benutzer oder global konfigurierten Mail-Filter-Regeln ein. Diese Regeln definieren Bedingungen (z.B. Absender, Betreff) und Aktionen (z.B. Verschieben, Löschen, Weiterleiten, Workflow starten JavaScript ausführen), siehe Mit dem agorum core mailfilter arbeiten. Die eingelesenen Regeln wendet die Bibliothek auf ein übergebenes Mail-Objekt an. 

Die konfigurierten E-Mail-Filter werden wie folgt ermittelt und angewendet:

Für weitere Informationen zum Erstellen dieser Regeln, siehe agorum core mailfilter administrieren

 

Verwendung


Binden Sie die Bibliothek stets am Anfang eines Skripts ein:

let mailFilter = require('/agorum/roi/customers/agorum.mail.filter/js/lib/mail-filter');

Funktionen


run

Die Funktion run wendet die spezifizierten Filteraktionen auf die übergebenen E-Mails an.


Syntax

run(mail, data)


Parameter

Parameter Beschreibung Pflicht Standard
mail Gibt die E-Mail (agorum.MailObject) an, auf die die Aktionen durchgeführt werden sollen. ja
data Konfigurationsobjekt, das spezifiziert, welche Benutzerinformationen und welche E-Mail-Filteraktionen angewendet werden sollen. Das Objekt hat folgende Struktur. Alle Angaben sind optional.
  • user (agorum.UserObject): Optionale Angabe des Benutzers, dessen Filterregeln angewendet werden sollen. Wenn nichts angegeben ist, wird der Besitzer der E-Mail ermittelt.
  • incoming (boolean): Optionaler boolscher Wert, der angibt, ob die Mail eingehend (true) oder ausgehend (false) ist. Wenn nichts angegeben ist, wird versucht, den Typ automatisch zu bestimmen.
  • actions (Object): Ein Objekt, das festlegt, welche spezifischen Aktionen durchgeführt werden sollen. Wenn nichts angegeben ist, werden Standardwerte verwendet. Sie können folgende Aktionen angeben:
    • move (boolean, Standardwert: true): Verschiebt die E-Mail in einen anderen Ordner. Optional kann ein Link im Ursprungsordner verbleiben (linkBack). ACL und ggf. Besitzer werden vom Zielordner übernommen.
    • delete (boolean, Standardwert: true für eingehende E-Mails, sonst false): E-Mail löschen bzw. in den Papierkorb verschieben.
    • forward (boolean, Standardwert: true für eingehende E-Mails, sonst false): E-Mail an die angegebenen E-Mail-Adressen weiterleiten, mit oder ohne Beibehaltung der Original-E-Mail im Postfach.
    • reply (boolean, Standardwert: true für eingehende E-Mails, sonst false): Sendet eine automatische Antwort zurück. Für den Betreff und den Text können Vorlagen mit templates.fill verwendet werden.
    • workflow (boolean, Standardwert: true): Startet einen konfigurierten Workflow. Der Name und die Beschreibung des Workflows werden aus der Filterkonfiguration übernommen.
    • js (boolean, Standardwert: true): Führt ein benutzerdefiniertes JavaScript aus.
nein -


Beispiel 1 - Minimales Beispiel mit Standardeinstellungen

let objects = require('common/objects');
let mailFilter = require('/agorum/roi/customers/agorum.mail.filter/js/lib/mail-filter');

// minimal sample
let mail = objects.find('a-mail-object'); // use an e-mail object here
mailFilter.run(mail);

 

Beispiel 2 - Beispiel mit Angabe von E-Mail-Filteraktionen

let objects = require('common/objects');
let mailFilter = require('/agorum/roi/customers/agorum.mail.filter/js/lib/mail-filter');

/**
 * Full sample call how to use a mail filter for a specific mail
 *
 * With actions you can specify, if you only want to run specific filter actions.
 */

let mail = objects.find('a-mail-object'); // use an e-mail object here
mailFilter.run(mail, {
  incoming: true, // optional, default is autodetect
  user: mail.owner, // optional, default is owner of mail
  actions: {
    // optional
    move: true, // optional, default is true
    delete: true, // optional, default is true when incoming mail, otherwise false
    forward: true, // optional, default is true when incoming mail, otherwise false
    reply: true, // optional, default is true when incoming mail, otherwise false
    workflow: true, // optional, default is true
    js: true, // optional, default is true
  },
});