Thread SpamFilter Email in Perl "simulieren" (9 answers)
Opened by J0ke at 2016-11-15 10:36

J0ke
 2016-11-15 10:36
#185592 #185592
User since
2016-01-21
16 Artikel
BenutzerIn
[default_avatar]
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)

View full thread SpamFilter Email in Perl "simulieren"