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

Скрипт для чикания спама



По просьбам телезрителей высылаю мое творение ;)

antispam.pl - собственно скрипт. Там надо поправить
имя сервера, логин, пароль и свой e-mail

enabled.txt - список адресов. Если у вас в ящике письма на эти
адреса, то они грохнуты не будут. Полезно для списков рассылки.

spamaddr.txt - моя база спамеров. Включает как отдельные
адреса так и целые домены. При сравнении From и сточки из
базы используется поиск подстроки со всеми вытекающими.
Поэтому если в строчка в базе .co.kr, а письмо пришло с адреса
webmaster@home.co.kr, то оно будет почикано.

spamsubj.txt - для заголовков. Если в subj встретится подстрока,
которая есть в этом файле, то письмо также будет почикано.

Вниманию новичков! Программа требует модуль Perl'а
Net::POP3. С этим проблем быть не должно - есть оно в
Debian'e (не помню правда название пакета), то на всякий случай
предупреждаю.

Установка: все складывается в один каталог, в котором есть
права на запись (для создания лога). После этого
chmod +x ./antispam.pl и все готово к употреблению. ;)
Запускать в этом же каталоге ./antispam.pl

Программа довольно болтлива и будет докладывать буквально
о каждом своем шаге.

--
С уважением, Виктор

#!/usr/bin/perl

use Net::POP3;

$pop3_server = "mail.permonline.ru";
$pop3_user = "username";
$pop3_passwd = "password";
$my_email = "victor_v\@permonline.ru";

$spamaddr_file = "./spamaddr.txt";
$spamsubj_file = "./spamsubj.txt";
$enabled_file = "./enabled.txt";

$reject_file = "./reject.log";

sub WriteHeader {
  my (@header) = @_;
  my $i;
  
  open(FO, ">>$reject_file");
  foreach $i (@header) {
    chomp($i);
    print FO "$i\n";
  }
  print FO "\n";
  close(FO);
}

sub SpamAddr {
  my ($line) = @_;
  my $i;

  foreach $i  (@spam_addr) {
    return -1 if (index($line, $i) != -1);
  }
  
  return 0;
}

sub SpamSubj {
  my ($line) = @_;
  my $i;

  foreach $i  (@spam_subj) {
    return -1 if (index($line, $i) != -1);
  }
  
  return 0;
}

sub CheckTo {
  my ($line) = @_;
  my $i;

  foreach $i  (@enabled_addr) {
    return 0 if (index($line, $i) != -1);
  }

  return -1 if (index(lc($line), lc($my_email)) == -1);
  return 0;
}

print "Loading spammer's addresses... ";
@spam_addr=();
open(F, $spamaddr_file);
while(<F>) {
  chomp();
  $s = $_;
  push(@spam_addr, $s) if (index($s, "#") != -1 || $s ne "");
}
close(F);
print "done\n";

print "Loading spam letter subjects... ";
@spam_subj=();
open(F, $spamsubj_file);
while(<F>) {
  chomp();
  $s = $_;
  push(@spam_subj, $s) if (index($s, "#") != -1 || $s ne "");
}
close(F);
print "done\n";

print "Loading enabled subjects... ";
@enabled_addr=();
open(F, $enabled_file);
while(<F>) {
  chomp();
  $s = $_;
  push(@enabled_addr, $s) if (index($s, "#") != -1 || $s ne "");
}
close(F);
print "done\n";

print "Connect to $pop3_server... ";
$pop = Net::POP3->new($pop3_server) or die "Can't open connection to $pop3_server: $!\n";
print "done\n";
print "Login as user $pop3_user... ";
$pop->login($pop3_user, $pop3_passwd) or die "Can't login to $pop3_server: $!\n";
print "done\n";

print "Loading list of messages... ";
$msgnums = $pop->list or die "Can't get list of undeleted messages :$!\n";
print "done\n";

$count = 0;

foreach $i (keys %$msgnums) {
  $flag = 0; $is_to = 0; $is_from = 0;
  $count++;
  print "Loading header message number $count... ";
  $header = $pop->top($i, 0);
  print "done\n";
  
  print "Analising header message number $count... ";
  foreach $line (@$header) {
    chomp($line);
    if (index(lc($line), "from:") == 0) {
      $is_from = 1;
      if (SpamAddr($line) == -1) {
        $flag = 2;
        next;
      }
    }

    if (index(lc($line), "subject:") == 0) {
      if (SpamSubj($line) == -1) {
        $flag = 3;
        next;
      }
    }

    if (index(lc($line), "to:") == 0) {
      $is_to = 1;
      $flag = 1 if CheckTo($line) == -1;
      next;
    }
    
    if (index(lc($line), "cc:") == 0) {
      $is_to = 1;
      $flag = 0 if CheckTo($line) == 0;
    }
  }
 
  $flag = 4 if ($is_to == 0);
  $flag = 5 if ($is_from == 0);
 
  if ($flag > 0) {
      print "deleted: not for me\n" if ($flag == 1);
      print "deleted: address in spammer's base\n" if ($flag == 2);
      print "deleted: subject in subject's base\n" if ($flag == 3);
      print "deleted: field \"To:\" is absent\n" if ($flag == 4);
      print "deleted: field \"From:\" is absent\n" if ($flag == 5);
      WriteHeader(@$header);
      $pop->delete($i);
  } else {
      print "done\n";
  }
}

$pop->quit();
gnome-cyr@gnome.org
freshmeat-news@freshmeat.net
lout@ptc.spbu.ru
# http://ezhe.ru/ses/list.html
.co.kr
.com.br
.co.jp
language.com
@monteckorea.com
@imart.ac
@naroot.net
@footday.com
@inpastel.com
@webpromotion2.com
@driverzzang.com
@almangi.com
@hanbit.com
@baulmedia.com
@test2.com
@sina.com
@kbf.info
@ddddd.com
@dohewon.com
@albaclub.com
@dreamx.net
@ibclub.tv
@digitalschool.com
@lanitdv.ru
@netian.com
@pa18.com
@drcodi.com
@test.net
@wirelessteam.net
@sohomart.org
@bcline.com
@themail.com
@xxx.com
@yahoo.com.cn
@naver.com
@eudoramail.com
@rediffmail.com
@namail.net
@kornet.net
@com.ne.kr
@shaw.ca
@stc.net
@wowmail.com
@noryangjin.com
@hanmir.com
@51wlan.com
@hitel.net
@empal.com
@hitkorea.biz
whitecat@mail.ru
@clickij.com
@263.net
@163.net
@163.com
@0.com
@ggg.com
@test.com
@1234.com
@aaaa.com
@emailresults.net
@korea.com
@hanmail.net
@hanmail.com
@hananet.net
@gmate.com
@dreamwiz.com
@ibcine.tv
@medical4989.com
@shinbiro.com
@chinaut.net
@trendware.com
dm_reclama@mtu-net.ru
tanja@sonet.ru
alpha@geocities.com
1olga1@mail.ru
mail@irven.ru
lenakor@chat.ru
iqtest@aim.com
kotik_ru@mail.ru
mblmotor@corbina.ru
valisan@aprec.ru
anna.swelund@ericsson.com
kotedg@iname.ru
lucas_x@aport.ru
nanana58@hotmail.com
lan@psycho.com
tengizler@ixir.com
nol@nol.ryazan.ru
senoval@mail.ru
contact@gtranz.com
kondr@hotmail.com
ceo@kofe.spb.ru
bakars@mail.ru
banner_network@aport.ru
nionia@atlant.ru
555kt@mail.ru
irinka99@hotmail.ru
natalie_kuznechova@hotmail.ru
dajam@zuko.istu.udm.ru
mp@mipco.com
info@touristic.ru
voland@mail.primorye.ru
andrey@richsex.ru
simpler@mail.ru
mobitechas@takas.it
inet-commersant@mail.com
ncbe@usa.net
ssido@mail.ru
expmoney@mail.ru
nosorog@id.ru
confetca@mail.ru
kolerser@mailru.com
sos2000@mailru.com
teplo@mail.ru
baemist@online.ru
inet-comersant@ecommerce.com
argonchos@mail.ru
root@chv.chita.ru
snoppy12@usa.net
newjob@beep.ru
michael@tms.ru
realcash@post.com
vladimir_polyakov@yahoo.com
bshclan@spb.cityline.ru
supermlm@mail.ru
ls@deko.ru
top@xtm.ru
vika@mtu-net.ru
aifnet@aif.ru
webmaster@axisoline.org
zima@sama.ru
mtu2basil@mtu-net.ru
fl@infrmicc.chita.ru
papirus@abc.acgava.ru
val@softjoys.ru
masoni@mailru.com
ikore@kmscom.ru
night56@online.ru
in-svyaz@asvt.ru
maxon1@aport.ru
invest@ipi.i-connect.com
nlc_group@yahoo.com
hack@aha.ru
escompx@mail.ru
info2410@eceurope.com
Gala@talgar.ru
kibersusel@chat.ru
info@stk.ru
d1@vico.bancorp.ru
schweiz@libel.org
fax_email@email.com
moscow_email@email.com
genyg@mail.ru
alexfil@natinvest.com
tio_2000@mail.ru
183admin@mail.ru
info@infoins.ru
address@over.ru
artdesign@rambler.ru
tour@vokrugsveta.msk.ru
fax_email@email.com
m1109@mail.ru
cardholder@rknxng.ncport.ru
denis@mail.ru
19435@pager.asvt.ru
newklt@mailru.com
standart@a-teleport.com
email_fax@welcome.to
sng_email@email.com
nklss@mail.ru
denis@info.ru
f757@pisem.net
promo@cyberlink.ru
hongkong@netfront.net
moscow_email@email.com
stepanova@artefact.ru
septet2001@hotbox.ru
bel02@mail.com
billiard-service@list.ru
expert@spylog.ru
news@timer.ru
support@shara.ru
user@izmaylovo.ru
biz@6x6.net
masha@mzlab.ne
atmpus@yahoo.com
oleg@gor.krintel.ru
adres@vnutri.com
graichek@pisem.net
shv@krafteurope.com
303av303@mtu-net.ru
la095-011@mail.ru
ildar12000@mail.ru
pommel@kulichki.ru
234234@mail.ru
vova@fiu.edu
number1@hotbox.ru
phmsopt@centro.ru
otdih@comail.ru
ruindes2@tut.by
main2001@rambler.ru
ramis@aha.ru
msc@al.ru
tot@students.ru
zon@km.ru
dir@udm.ru
obman111@mnogo.ru
intee@rhk.ru
t_ran_s_la@mail.com
oleg_mityev2002@mail.ru
sputnik_tv1@mail.ru
only@newsweek-event.com
@bigmir.net
ad@aidmail.net
drmp@land.ru
its@revolution.zp.ua
notsentus@yahoo.com
ted647788@aol.com
book___@xxmmmail.com
igold
guest@guest.com
techinvest@petrovichweb.ru
entrepreneur02@money.com
mailmaster@personaldb.net
asdfg@hotmail.com
lisa147736@excite.com
987954632145879@mail.com
bbench1.817.1002607@ewrma.com
heather@allofitaly.com
webmaster@szlongfa.com
usedhogparts@ameritech.net
voyager@voyager-m.ru
gallery_cd@yahoo.com
offshorenews@hotmail.ru
USAGold@mtsopt03.naviantnetwork.net
rh1098@i5425.com
master@junggo.com
cafekangnam@yahoo.com
bulgong@bulgong.com
@orgio.net
sin_10041@hotmail.com
webmaster@3651.org
qqq@as.com
gyec99@gyec.com.cn
xbdjd@sohu.com
newsletter@mailer4.asseenontw,com
remove@asseenontw.com
gib_dd@mail.ru
ponkiphone@hotmail.com
romio112@empal.com
nemo@nemo.ru
ivanov911@emer.kz
oktel999
test1@test.com
wuhanli5575@sina.com
nextsoft21@chollian.net
card080@emailad.net
lilo01@empal.com
gruz@pip.ru
dafuweng@163.com
cpu1ga@netsgo.com
tjsghkend@intizen.com
tiny266@hanmail.net
raspis1@mail.ru
ittraining@founder.com.cn
editor@email-4-prizes.com
fm@prm.ru
master@21citi.com
idohji@lycos.com.rk
so@ztm.syzran.ru
ikarpachev@deloitte.ru
whflngdos@freemail.ru
customer@opel.com.ua
yeinedu@hotmail.com
visor@olma.co.ru
ystep@mail.nw.ru
s475a@mail.com
advert@savebank.com
nik_nash@bk.ru
nsootlwlk@freemail.ru
pphbtcbgn@freemail.ru
prochor@rambler.ru
teamsuccesskr@yahoo.com
gbest@mail.com
shigio@wafu.netgate.net
malan@post.harvard.edu
specoffers@bighairypalm.com
bkowncsjf@mail.ru
sony-free@mail.ru
test@sohu.com
chshjsco@public7.sta.net.cn
rcjkucwns@mail.ru
webmaster@konedu.com
ceo@7rich.com
mihee@mihee.com
sales@omniplex.ltd.uk
j3840j@korea.com
formina@formina.co.kr
webmaster@webd-ma.com
smokes@thedoghousemail.com
master@edains.com
webmaster@1212tour.com
rvoldlkhn@mail.ru
jabcljiwi@mail.ru
master@mailpala.wo.to
zamty95@netian.com
open69deicide661@hotmail.com
cos4u@chollian.net
tomos@elelab.nsc.co.jp
pdace@chollian.net
guide21@114page.net
bhjang51@hotmail.com
inventor@center21.biz
infomailsys@mail.ru
mail@mail.net
porno
sex
erotic
[LOVE]
(Xxx)
(XXX)
(xxx)
zoo
ZOO

Reply to: