OT: spamfilter in kmail + Perlscript (Sorry, enthält Spamphrases)
Liebe Liste,
ich kriege ca. 15-20 Spam pro Tag (ich weiß, andere sagen jetzt: deine
Sorgen will ich haben) und filtere die mit unten folgenden Regexes in
Kmail (angepasst auf mein Spamaufkommen, dass z.B. erstes a in viagra
fehlen darf, letztes aber sein muss, hab ich erst aufgenommen, als mir
sowas mal durchrutschte).
Ansonsten gibt's nur noch: 'header contains text/html' als Regel.
Ab und an landet dann eine aus dieser Liste im trash-folder. Bisher sah
ich immer auf den ersten Blick, was das war (bisher war's immer die
Fortune-Signatur: You will gain money by a speculation or lottery)
Seit 1 Woche häufen sich aber Mails, bei denen ich nicht sehe, woran es
liegt. Also hab ich mir ein Perlscript geschrieben, das die Mail auf meine
Phrases prüfen soll (bin Anfänger, also nicht lachen jetzt ;-)
---schnipp---
#!/usr/bin/perl
while ($phrase = <>) {
if ($phrase =~
m/[vV][^0-9a-zA-Z]?[iIl|íì1]{1,2}[^0-9a-zA-Z]?[aA]{0,2}[^0-9a-zA-Z]?[gG]{1,2}[^0-9a-zA-Z]?[rR]{1,2}[^0-9a-zA-Z]?[aA]{1,2}/)
{
print "viagra\n";
} else {
print "- ";
}
if ($phrase =~
m/[cC][^0-9a-zA-Z]?[iIl|íì1][^0-9a-zA-Z]?[aA][^0-9a-zA-Z]?[lLI|1][^0-9a-zA-Z]?[iIl|íì1][^0-9a-zA-Z]?[sS]/)
{
print "cialis\n";
} else {
print "- ";
}
if ($phrase =~ m/[lL][oO][Tt][tT]?[Ee][Rr][YyiIjJ]/) {
print "lottery\n";
} else {
print "- ";
}
if ($phrase =~ m/[pP]orn/) {
print "Porn\n";
} else {
print "- ";
}
if ($phrase =~ m/[pP]enis/) {
print "Penis\n";
} else {
print "- ";
}
if ($phrase =~ m/[Oo]rgasm/) {
print "orgasm\n";
} else {
print "- ";
}
if ($phrase =~
m/[Rr]{1,2}e{1,2}p{1,2}[iIl1|]{1,2}[iI1|íìl]{1,2}c{1,2}a{1,2}/) {
print "replica\n";
} else {
print "- ";
}
if ($phrase =~ m/webcam/) {
print "webcam\n";
} else {
print "- ";
}
if ($phrase =~ m/drug/) {
print "drug\n";
} else {
print "- ";
}
if ($phrase =~ m/ejaculation/) {
print "ejaculation\n";
} else {
print "- ";
}
if ($phrase =~ m/\b[Cc]um\b/) {
print "cum\n";
} else {
print "- ";
}
if ($phrase =~ m/[pP][hH][aA]*[rR][mM][aA][cC][iIy1íìY]|[Mm]ortgage/) {
print "pharmacy, mortgage\n";
} else {
print "- ";
}
}
---schnapp---
Um wirklich nützlich zu sein, müsste das Script wenigstens noch die
Zeilennummer melden, in der es den String gefunden hat, aber ich weiß
nicht wie das geht ;-( Ansonsten tut's es aber für's erste
Das komische und daher meine Frage: neuerdings landen einige Mails der
Liste im Trash-Folder, bei denen das Script nichts findet, z.B.
Re: Radeon, 2 Schirme und tvtime
Date: Tue, 28 Jun 2005 11:25:00 +0200
From: "Felix M. Palmen"
Das ist eine kurze Mail, bei der man eigentlich schon mit bloßem Auge
sehen müßte, wo der Hase im Pfeffer liegt
dito
Frage zu sources.list in 3.1r0a
Date: Thu, 30 Jun 2005 21:13:01 +0200
From: Achim Oehlenschlaeger
oder
"Netzwerk verstecken"
Date: Fri, 1 Jul 2005 18:36:28 +0200
From: Andreas Pakulat
Einzige Möglichkeit wäre, wie gesagt, noch html-Mail, das ist aber nicht
der Fall. Ach ja, als ich nichts fand, hab ich auch die kompletten header
mit in meine Dateien: mailtest1/2/3 usw. kopiert und mit perl -w trash.pl
mailtestX aufgerufen. Kommen nur "-" ;-(
Sieht da jemand durch?
Dank und Gruß
von Gbehard
--
You may my glories and my state dispose,
But not my griefs; still am I king of those.
-- William Shakespeare, "Richard II"
Reply to: