Thread SpamFilter Email in Perl "simulieren"
(9 answers)
Opened by J0ke at 2016-11-15 10:36
Hallo alle miteinander :)
Ich möchte einen Spam-Filter in Perl Simulieren. Hierzu habe ich eine filter.txt-Datei und eine Email.txt-Datei. In der filter.txt stehen Begriffe wie: sekada-daily@mail.komma-net.de globell mail.komma-net software-partner etc. In der Email.txt sollen der Quelltext einer Email, sowie der Header (Absender, Betreff, etc) enthalten sein. Jede der txt.-Dateien wird Zeilenweise in ein Array gelesen (also @filter und @mail). In @mail stehen also auch mal ganze Sätze, etc, während in @filter jeweils nur z.B. software-partner steht. Diese zwei Arrays sollen miteinander verglichen werden, und bei Übereinstimmung, soll diese mit Position (Zeile x, Wort y) ausgegeben werden. (Das Vergleichen der 2 Arrays soll NICHT bei der ersten Übereinstimmung aufhören, sondern jede einzelne Übereinstimmung finden. hier einmal was ich bisher habe (ist nicht viel :/ ) Mir fehlt aktuell der Ansatz, wie ich die zwei Arrays richtig vergleiche und "y" herausbekomme.. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/perl use 5.010; use strict; use warnings; use DBI; use Data::Dumper; #Filter-Schlagwörter Zeilenweise in ein Array einlesen open (FILTER, "Filter.txt") or die $!; my @filter = <FILTER>; close (FILTER); #print @filter; #Mail.txt öffnen und Zeilenweise in ein Array einlesen open (MAIL, "Email.txt") or die $!; my @mail = <MAIL>; close (MAIL); #print @mail; #Array @filter mit Array @mail vergleichen #bei Übereinstimmung wird ein Counter +1 gesetzt und die Übereinstimmung mit Position ausgegeben (Zeile und x´tes Wort der Zeile) #Es wird NICHT bei der ersten Übereinstimmung gestoppt Danke im Voraus :) modedit Editiert von GwenDragon: Code zwecks Lesbarkeit ausgerückt Last edited: 2016-11-15 13:54:35 +0100 (CET) |