Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > 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
                 //          ////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 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 with store
                 //          5   = forward mail without store
                 //          6
                 //          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 = 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 - 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 */
dataUpdate.action = 6;
dataUpdate.workflowName = 'Mein erster WF';
dataUpdate.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';
*/

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

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

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

check

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


Aufruf

ler 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

mailfilterobjects.check('8497334');


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

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