[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: