Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

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


JavaScript-Bibliothek mailfilter/objects

Ab welcher Version verfügbar?

• agorum core 10.0.7

Diese Bibliothek bietet Funktionen zum Erstellen, Ändern, Prüfen und Laden eines Mailfilters.

Verwendung


Diese Bibliothek binden Sie stets am Anfang eines Skripts ein:

let mailfilterobjects = require('mailfilter/objects');

oder mit einem speziellen SessionController:

let mailfilterobjects = require('mailfilter/objects')(sca);

Funktionen


create

Erstellt einen E-Mail-Filter.

Sie erhalten eine Fehlermeldung, wenn der E-Mail-Filter bereits existiert.


Aufruf

let mailfilter = mailfilterobjects.create('mailfilter', data);

Bei diesem Aufruf wird ein schon existierender E-Mail-Filter zurückgegeben:

Aufruf: let mailfilter = mailfilterobjects.tryCreate('mailfilter', data);


Parameter

let data = {
  name: ,        // MUSS - (string) Name des E-Mail-Filters
  action:,       // (integer) Action des E-Mail-Filters
                 //       Actions defined as:
                 //          1   = move to folder
                 //          2   = delete
                 //          3   = send message back
                 //          4   = forward mail with store
                 //          6   = start Workflow 
                 //          7   = JavaScript                           
  // Parameter abhängig von action - begin
  // Wenn action = 1
  destinationFolder, - (<Object OR ID>) ZielOrdnerID 
  linkBack           - (String) Zurücklinken?

  // Wenn action = 3
  subject,           - (String) Betreff der E-Mail, die zurückgesendet wird
  text ,             - (String) Text, der zurückgesendet wird

  // wenn action = 4
  forwardWithoutStore  - (boolean) true = forward mail without store
                                   false = forward mail with store
                                   Default: false
  toAddress,           - String [] mit Mailadressen

  // wenn action = 6
  workflowName,        - String - Name des Workflows, der gestartet wird
  workflowDescription  - String - Workflowname, den der gestartete Workflow bekommt

  // wenn action = 7
  js,                  - String - Pfad zum JavaScript, das aufgerufen werden soll

  // Parameter abhängig von action - end

  description: , // (string) Beschreibung des E-Mail-Adapters
                 //          Default: null
  sortOrder: ,   // (long)   Sortierreihenfolge
                 //          Default: ID des E-Mail-Filters
  allIncoming    // boolean - Aktion durchführen auf alle eingehenden E-Mails 
                 //           (Filter Einstellung ignorieren)
                 //           Default: false
  active         // boolean - Dieser Filter ist aktiv
                 //           Default: false
  globalFilter   // boolean - Globaler Filter (anwenden auf alle E-Mails aller Benutzer)
                 //           Default: false
  stopFilter     // boolean - Keine weiteren Filter ausführen, wenn dieser Filter greift
                 //           Default: false
  filter: [
    {
      value: '.*xyz.*'
      attribute: 'FROM'  // FROM, SUBJECT, TO, CC, BCC, TEXT, ATTACHMENT, <Feldname>
                         // Von,  Betreff, an, cc, bcc, body, attachment-name, Anderes Feld
    },
    ..
    .
  ]                                                            
};


Beispiel

/* global sc */
let objects = require('common/objects');
let mailfilterobjects = require('mailfilter/objects');

let data = {
  name: 'Mein erster E-Mail-Filter',
  action: '1',  // Move
  destinationFolder: objects.find('8276189'),
  linkBack: true
};

let mailfilter = mailfilterobjects.tryCreate('mailfilter', data);

update

Ändert einen E-Mail-Filter.


Aufruf

mailfilterobjects.update('mailfilter', object, data);


Parameter

object: Ist das E-Mail-Filter-Objekt (MailFilterObject), das upgedatet werden soll

// Alle data-Einträge sind KANN-Daten

let data = {
  name: ,        // MUSS - (string) Name des E-Mail-Filters
  action:,       // (integer) Action des E-Mail-Filters
                 //       Actions defined as:
                 //          1   = move to folder
                 //          2   = delete
                 //          3   = send message back
                 //          4   = forward mail
                 //          7   = JavaScript                           
  // Parameter abhängig von action - begin
  
  // action = 1
  destinationFolder, - (String) ZielOrdnerID 
  linkBack           - (String) Zurücklinken?

  // Wenn action = 3
  subject,           - (String) Betreff der E-Mail, die zurückgesendet wird
  text ,             - (String) Text, der zurückgesendet wird
  
  // wenn action = 4
  forwardWithoutStore  - (boolean) true = forward mail without store
                                   false = forward mail with store
                                   Default: false
  toAddress,           - String [] mit E-Mail-Adressen
  
  // wenn action = 7
  js,                  - String - Pfad zum JavaScript, das aufgerufen werden soll
  
  // Parameter abhängig von action - end

  description: , // (string) Beschreibung des E-Mail-Adapters
                 //          Default: null
  sortOrder: ,   // (long)   Sortierreihenfolge - in dieser Reihenfolge werden die E-Mail-Filter ausgeführt 
                 //          Default: ID des E-Mail-Filters
  allIncoming    // boolean - Aktion durchführen auf alle eingehenden E-Mails 
                 //           (Filter Einstellung ignorieren)
                 //           Default: false
  active         // boolean - Dieser Filter ist aktiv
                              Default: false
  globalFilter   // boolean - Globaler Filter (anwenden auf alle E-Mails aller Benutzer)
                 //           Default: false
  stopFilter     // boolean - Keine weiteren Filter ausführen, wenn dieser Filter greift
                 //           Default: false
  filter: [
    {
      value: '.*xyz.*'
      attribute: 'FROM'  // FROM, SUBJECT, TO, CC, BCC, TEXT, ATTACHMENT, <Feldname>
                         // Von,  Betreff, an, cc, bcc, body, attachment-name, Anderes Feld
    },
    ..
    .
  ]                                                            

}


Beispiel

/* global sc */ 

let objects = require('common/objects'); 
let mailfilterobjects = require('mailfilter/objects'); 

let mailfilter = objects.find('1234321');
// Laden der gesetzten Daten
let data = mailfilterobjects.load('mailfilter', mailfilter);


data.allIncoming = false;
data.globalFilter = false;
data.stopFilter = false;
data.active = true;
data.description = 'xx1';

/* Beispiel für 
data.action = '2'; // Delete
*/

/* Beispiel für
data.action = '3'; // send message back
data.subject = 'Ich bin im Urlaub',
data.text = 'Das ist\nmein Text\nder zurückgesendet wird\nMfg Rolf';
*/

/* Beispiel für
data.action = '4'; // forward mail with store
data.forwardWithoutStore = true;
data.toAddress = [ 'rolf.lang@agorum.com', 'oliver.schulze@agorum.com' ],
*/

/* Beispiel für */
data.action = 6;
data.workflowName = 'Mein erster WF';
data.workflowDescription = 'mein text an den WF';


/* Beispiel für
data.action = '7'; // JS aufrufen
data.js = '/agorum/roi/customers/agorum.mail.filter/js/test/test-mailfilter-js';
*/

data.filter = [ 
  {
    attribute: 'ABC',
    value: 'hier',
    isRegExp: false
  }, {
    attribute: 'xyzX',
    value: 'daX',
    isRegExp: true
  } 
];

data.sortOrder = 200; //parseInt(mailfilter.ID); //8277842

mailfilterobjects.update('mailfilter', mailfilter, data);

check

Findet E-Mail-Filter, die auf eine übergebene E-Mail ausgeführt werden.


Aufruf

let result = mailfilterobjects.check(mail);


Parameter

Parameter Beschreibung
mail Definiert <Object or ID> der zu prüfenden E-Mail.

Ergebnis

result = [   // Alle E-Mail-Filter, die für diese E-Mail passen
  {
    stopFilter : true,
    name : 'Mein erster Filter',
    action : {
      data : {
        link : true,
        destination : {
           path : '/agorum/roi/Files/mailfilter',
           id : '8276189'
         }
      },
      name : 'move'
    },
    'id' : '8277274'       // ID des E-Mail-Filters
  }, 
  {
    ...
  }
]


Beispiel

let mailfilterobjects = require('mailfilter/objects');

let result = mailfilterobjects.check('acf1e170-b6df-11ef-812f-02420a0a000e');

result;


Ergebnis

[
  {
    "stopFilter" : true,
    "name" : "Mein erster Filter",
    "action" : {
      "data" : {
        "link" : true,
        "destination" : {
          "path" : "/agorum/roi/Files/mailfilter",
          "id" : "8276189"
        }
      },
      "name" : "move"
    },
    "id" : "8277274"
  },
  {
    "stopFilter" : false,
    "name" : "Test",
    "action" : {
      "data" : {
        "link" : true,
        "destination" : {
          "path" : "/agorum/roi/Files/mailfilter",
          "id" : "8276189"
        }
      },
      "name" : "move"
    },
    "id" : "8334559"
  },
  {
    "stopFilter" : false,
    "name" : "343",
    "action" : {
      "data" : {
        "link" : true,
        "destination" : {
          "path" : "/agorum/roi/Files/mailfilter",
          "id" : "8276189"
        }
      },
      "name" : "move"
    },
    "id" : "8372556"
  }
]

load

Lädt das data-Objekt eines E-Mail-Filters.


Aufruf

let data = mailfilterobjects.load('mailfilter', mailfilter);


Parameter

Parameter Beschreibung
mailfilter Definiert das E-Mail-Fiter-Object.


Ergebnis

data = {
  name: ,        // MUSS - (string) Name des E-Mail-Filters
  action:,       // (integer) Action des E-Mail-Filters
                 //       Actions defined as:
                 //          1   = move to folder
                 //          2   = delete
                 //          3   = send message back
                 //          4   = forward mail with store
                 //          ////5   = forward mail without store --> only internal
                 //          6   = start Workflow 
                 //          7   = JavaScript                           
  // Parameter abhängig von action - begin
  // Wenn action = 1
  destinationFolder, - (<Object OR ID>) ZielOrdnerID 
  linkBack           - (String) Zurücklinken?

  // Wenn action = 3
  subject,           - (String) Betreff der E-Mail, die zurückgesendet wird
  text ,             - (String) Text, der zurückgesendet wird

  // wenn action = 4
  forwardWithoutStore  - (boolean) true = forward mail without store
                                   false = forward mail with store
                                   Default: false
  toAddress,           - String [] mit E-Mail-Adressen

  // wenn action = 6
  workflowName,        - String - Name des Workflows, der gestartet wird
  workflowDescription  - String - Workflowname, den der gestartet Workflow bekommt

  // wenn action = 7
  js,                  - String - Pfad zum JavaScript, das aufgerufen werden soll

  // Parameter abhängig von action - end

  description: , // (string) Beschreibung des E-Mail-Adapters
                 //          Default: null
  sortOrder: ,   // (long)   Sortierreihenfolge
                 //          Default: ID des E-Mail-Filters
  allIncoming    // boolean - Aktion durchführen auf alle eingehenden E-Mails 
                 //           (Filter Einstellung ignorieren)
                 //           Default: false
  active         // boolean - Dieser Filter ist aktiv
                 //           Default: false
  globalFilter   // boolean - Globaler Filter (anwenden auf alle E-Mails aller Benutzer)
                 //           Default: false
  stopFilter     // boolean - Keine weiteren Filter ausführen, wenn dieser Filter greift
                 //           Default: false
  filter: [
    {
      value: '.*xyz.*'
      attribute: 'FROM'  // FROM, SUBJECT, TO, CC, BCC, TEXT, ATTACHMENT, <Feldname>
                         // Von,  Betreff, an, cc, bcc, body, attachment-name, Anderes Feld
    },
    ..
    .
  ]                                                            
};


Beispiel

/* global sc */

let objects = require('common/objects');

let mailfilterobjects = require('mailfilter/objects');

let mailfilter = objects.find('1919522');

let data = mailfilterobjects.load('mailfilter', mailfilter);

data;

Rückgabe-Beispiel

{
  "destinationFolder" : "1887409",
  "stopFilter" : false,
  "filter" : [ ],
  "allIncoming" : false,
  "linkBack" : true,
  "sortOrder" : 1919522,
  "name" : "Mein zweiter E-Mail-Filter",
  "description" : "",
  "action" : "1",
  "active" : true,
  "globalFilter" : true,
  "isActive" : true
}