Spamfilter in todo4teams: Blacklisten von E-Mails
Das generelle Problem mit unerwünschten E-Mails
Zuweilen erzeugen öffentliche E-Mail-Adressen, wie z.B. info@... oder kontakt@.... in Unternehmen ein hohes Aufkommen unerwünschter E-Mails. Die eintreffende E-Mails sind stark heterogen, neben den klassischen Spam-Mails treffen ggf. auch Werbe-E-Mails etc. ein. In den Zeiten hohen E-Mail-Aufkommens kann dies die mit der E-Mail-Bearbeitung beauftragten Teams stark belasten, da jeweils ein neuer Job in todo4teams mit solch einer eintreffenden E-Mail generiert wird.
Zielsetzung
Um die Mitarbeiter von der Flut unerwünschter E-Mails zu entlasten, kann man E-Mail adressbasiert in todo4teams blockieren. Hierfür müssen die eintreffenden E-Mails identifiziert werden, die dadurch generierten Jobs selektiert sowie in Folge die dadurch entstandenen Tickets automatisch geschlossen werden, ohne dass ein Anwender manuell eingreifen muss. Dazu geht man wie folgt vor:
Schritt 1: Definition eines Systemparameters
Zunächst definiert man die E-Mail-Adressen, die man blockieren möchte, als Systemparameter. Dazu legt man einen Systemparameter "BLACKLIST_EMAILS" an. In diese trägt man die Liste der zu blockierenden E-Mails ein; es genügt in diesem Zusammenhang auch ein Teil der E-Mail Adresse, der eine unerwünschte E-Mail identifiziert (im Beispiel "noreply@"):
hans.beispiel@test.de
noreply@
Schritt 2: Schließen der erzeugten Tickets direkt bei Eingang einer unerwünschten E-Mail
Hierzu wird in der "Eintreffen-Aktion" der betreffenden Mailbox die in Schritt 1 definierte Systemparameter ausgewertet sowie die betroffenen Tickets, die von unerwünschten E-Mails erzeugt worden sind, direkt geschlossen. Das folgende Javaskript führt dies für die Servereigenschaft "BLACKLIST_EMAILS" durch:
var blacklistproperty = helper.getServerPropertyByName("BLACKLIST_EMAILS");
// Ist die Servereigenschaft für Blacklist-Mails gesetzt
if (blacklistproperty != null)
{
// Erzeuge Liste der zu blockenden E-Mails
var blacklists = blacklistproperty.toLowerCase().split("\n");
// Ist die Servereigenschaft für blacklist-Mails gesetzt?
for(var i = 0; i<blacklists.length; ++i)
{
var blacklist=blacklists[i].trim();
println("Prufe Absender "+ from+" gegen Blacklist "+blacklist);
// Enthaelt der Absender den zu blockierenden Eintrag?
if (blacklist.length()>0 && from.contains(blacklist))
{
println("Todo mit der id "+task.getId()+ " wurde als blacklist automatisch geschlossen.");
task.startWorking();
task.setDoneComment("Als blacklist erkannt.");
task.finishWorking(true);
}
}
}