From 529efd53a1023f3ba3868cfcd1df626a2dcc6d5a Mon Sep 17 00:00:00 2001 From: Charlie Root Date: Sat, 1 Mar 2025 00:58:18 +0100 Subject: [PATCH] Initial commit --- aboutme.php | 45 + admin-webpwd.php | 57 + cfg_apps/mail/top.localhostnames | 0 cfg_apps/mail/top.virtusertable | 5 + cfg_apps/nginx/sites.conf | 7 + cfg_apps/petar/petar.cfg | 26 + cfg_apps/squid/bad_url.txt | 2 + cfg_apps/squid/bad_users.txt | 1 + cfg_apps/squid/good_users.txt | 34 + cfg_apps/squid/middle_url.txt | 22 + cfg_apps/squid/middle_users.txt | 62 + cfg_apps/webalizer/webalizer-squid.conf | 74 + cisco-show.php | 102 ++ css/cnet.css | 68 + css/cnet.css.orig | 68 + css/petar.css | 110 ++ db/.old/init-tables.sql.old | 16 + db/.old/petar.db3.old | Bin 0 -> 73728 bytes db/admin.db3 | 1 + db/empty.db3 | Bin 0 -> 28672 bytes db/init-tables.sql | 7 + db/petar.db3 | Bin 0 -> 77824 bytes db/petar.db3.jacky | Bin 0 -> 73728 bytes duplicate_fill.js | 3 + empty.php | 31 + grey-log.php | 155 ++ include/cfg-cisco2800.php | 11 + include/cfg-cisco7200.php | 12 + include/cfg-customer.php | 5 + include/cfg-mail.php | 14 + include/cfg-petar.php | 12 + include/cfg-radius.php | 7 + include/cfg-sendmail.php | 10 + include/cfg-spam.php | 16 + include/cfg-squid.php | 20 + include/db.php | 5 + include/import-email-ablia.com.sql | 6 + include/import-email.sql | 6 + include/inc-footer.php | 1 + include/inc-header.php | 35 + include/inc-top.php | 92 ++ include/layout.php | 8 + include/users.php | 6 + index.php | 75 + mail-adduser-fwd.php | 225 +++ mail-adduser.php | 224 +++ mail-restart.php | 50 + mail-stat.php | 62 + mail-users-fwd.php | 225 +++ mail-users.php | 348 +++++ pics/cut.gif | Bin 0 -> 617 bytes pics/cut.png | Bin 0 -> 626 bytes pics/edit.gif | Bin 0 -> 257 bytes pics/edit.png | Bin 0 -> 589 bytes pics/fire16.png | Bin 0 -> 776 bytes pics/notused/trash16.png | Bin 0 -> 843 bytes pics/notused/trash24.png | Bin 0 -> 1502 bytes pics/pwd.gif | Bin 0 -> 267 bytes pics/pwd.png | Bin 0 -> 494 bytes radius-adduser.php | 167 +++ radius-log.php | 101 ++ radius-sync.php | 78 + radius-users.php | 289 ++++ rrdtools/archive/ciscoGraph.sh | 341 +++++ rrdtools/archive/cpuGuardian.sh | 234 +++ rrdtools/archive/prove/cpu-load | Bin 0 -> 7381 bytes rrdtools/archive/prove/cpu-load.c | 153 ++ rrdtools/archive/prove/mio.test | 13 + .../archive/prove/scripts.orig/bw-adsl.sh | 66 + .../archive/prove/scripts.orig/conn-server.sh | 79 + .../archive/prove/scripts.orig/temp-hd.sh | 50 + rrdtools/archive/prove/test.sh | 4 + rrdtools/archive/rrd-hddmon.pl | 61 + rrdtools/dbase/bw-bge0.rrd | Bin 0 -> 5464 bytes rrdtools/dbase/bw-em0.rrd | Bin 0 -> 5464 bytes rrdtools/dbase/conn-server.rrd | Bin 0 -> 18544 bytes rrdtools/dbase/cpu-server.rrd | Bin 0 -> 2848 bytes rrdtools/dbase/hd-server.rrd | Bin 0 -> 5464 bytes rrdtools/dbase/temp-hd.rrd | Bin 0 -> 5464 bytes rrdtools/img/bw-bge0.png | Bin 0 -> 18009 bytes rrdtools/img/conn-server.png | Bin 0 -> 30159 bytes rrdtools/img/cpu-server.png | Bin 0 -> 12622 bytes rrdtools/img/hd-server.png | Bin 0 -> 12873 bytes rrdtools/img/small-bw-bge0.png | Bin 0 -> 6404 bytes rrdtools/img/small-conn-server.png | Bin 0 -> 9107 bytes rrdtools/img/small-cpu-server.png | Bin 0 -> 4353 bytes rrdtools/img/small-hd-server.png | Bin 0 -> 3711 bytes rrdtools/img/small-temp-hd.png | Bin 0 -> 4553 bytes rrdtools/img/temp-hd.png | Bin 0 -> 13329 bytes rrdtools/rrd-generate.sh | 11 + rrdtools/rrdtool.conf | 10 + rrdtools/scripts/bw-bge0.sh | 54 + rrdtools/scripts/conn-server.sh | 91 ++ rrdtools/scripts/conn-server.sh.snmp | 71 + rrdtools/scripts/cpu-server.sh | 44 + rrdtools/scripts/hd-server.sh | 50 + rrdtools/scripts/old/bw-bge0.sh.old | 58 + rrdtools/scripts/old/bw-em0.sh | 54 + rrdtools/scripts/old/hd-server.sh.old | 48 + rrdtools/scripts/old/temp-hd.sh.old | 46 + rrdtools/scripts/temp-hd.sh | 55 + rrdtools/test.sh | 5 + sendmail-log.php | 130 ++ sendmail-mailq.php | 196 +++ spam-log.php | 147 ++ spam-manage.php | 263 ++++ spamass-log.php | 165 ++ squid-acl.php | 109 ++ squid-guard.php | 119 ++ squid-log.php | 109 ++ sudo_cmd/.off/chmod-homedir.sh | 7 + sudo_cmd/.off/mail-sync-fwd.sh | 22 + sudo_cmd/.off/mail-sync.sh | 59 + sudo_cmd/.off/mkdir-homedir.sh | 7 + sudo_cmd/.off/readpwd.sh | 3 + sudo_cmd/mng_maillog.sh | 24 + sudo_cmd/mng_user.sh | 91 ++ sudo_cmd/out/import-email.sql | 62 + sudo_cmd/petar.company.sudoers | 9 + sudo_cmd/qtool.pl | 1324 +++++++++++++++++ sudo_cmd/radius-sync.sh | 22 + sudo_cmd/squid-sync.sh | 13 + sudo_cmd/tools.cfg | 27 + tools-net.php | 85 ++ tools/init_system.sh | 22 + tools/mail-fromlist.pl | 38 + tools/pls.pl | 50 + tools/sendmail_stats.pl | 310 ++++ tools/system2petar/.old/mail-sys-import.pl | 54 + .../.old/radius-convert-old-fmt.pl | 25 + tools/system2petar/.old/virt-sys-import.pl | 38 + ...), shell varchar(20), domain varchar(50)); | 0 .../DROP TABLE IF EXISTS MAILUSER | 0 tools/system2petar/convert_old_mailuser.sh | 10 + tools/system2petar/db.fwduser.sql | 911 ++++++++++++ tools/system2petar/db.spamilter.sql | 1093 ++++++++++++++ tools/system2petar/mail.csv | 47 + tools/system2petar/master.passwd | 94 ++ tools/system2petar/master.passwd-import.sh | 14 + tools/system2petar/spamilter-db-import.sh | 7 + 140 files changed, 10310 insertions(+) create mode 100644 aboutme.php create mode 100644 admin-webpwd.php create mode 100644 cfg_apps/mail/top.localhostnames create mode 100644 cfg_apps/mail/top.virtusertable create mode 100644 cfg_apps/nginx/sites.conf create mode 100644 cfg_apps/petar/petar.cfg create mode 100644 cfg_apps/squid/bad_url.txt create mode 100644 cfg_apps/squid/bad_users.txt create mode 100644 cfg_apps/squid/good_users.txt create mode 100644 cfg_apps/squid/middle_url.txt create mode 100644 cfg_apps/squid/middle_users.txt create mode 100644 cfg_apps/webalizer/webalizer-squid.conf create mode 100644 cisco-show.php create mode 100644 css/cnet.css create mode 100644 css/cnet.css.orig create mode 100644 css/petar.css create mode 100644 db/.old/init-tables.sql.old create mode 100644 db/.old/petar.db3.old create mode 100644 db/admin.db3 create mode 100644 db/empty.db3 create mode 100644 db/init-tables.sql create mode 100644 db/petar.db3 create mode 100644 db/petar.db3.jacky create mode 100644 duplicate_fill.js create mode 100644 empty.php create mode 100644 grey-log.php create mode 100644 include/cfg-cisco2800.php create mode 100644 include/cfg-cisco7200.php create mode 100644 include/cfg-customer.php create mode 100644 include/cfg-mail.php create mode 100644 include/cfg-petar.php create mode 100644 include/cfg-radius.php create mode 100644 include/cfg-sendmail.php create mode 100644 include/cfg-spam.php create mode 100644 include/cfg-squid.php create mode 100644 include/db.php create mode 100644 include/import-email-ablia.com.sql create mode 100644 include/import-email.sql create mode 100644 include/inc-footer.php create mode 100644 include/inc-header.php create mode 100644 include/inc-top.php create mode 100644 include/layout.php create mode 100644 include/users.php create mode 100644 index.php create mode 100644 mail-adduser-fwd.php create mode 100644 mail-adduser.php create mode 100644 mail-restart.php create mode 100644 mail-stat.php create mode 100644 mail-users-fwd.php create mode 100644 mail-users.php create mode 100644 pics/cut.gif create mode 100644 pics/cut.png create mode 100644 pics/edit.gif create mode 100644 pics/edit.png create mode 100644 pics/fire16.png create mode 100644 pics/notused/trash16.png create mode 100644 pics/notused/trash24.png create mode 100644 pics/pwd.gif create mode 100644 pics/pwd.png create mode 100644 radius-adduser.php create mode 100644 radius-log.php create mode 100644 radius-sync.php create mode 100644 radius-users.php create mode 100755 rrdtools/archive/ciscoGraph.sh create mode 100755 rrdtools/archive/cpuGuardian.sh create mode 100755 rrdtools/archive/prove/cpu-load create mode 100644 rrdtools/archive/prove/cpu-load.c create mode 100644 rrdtools/archive/prove/mio.test create mode 100755 rrdtools/archive/prove/scripts.orig/bw-adsl.sh create mode 100755 rrdtools/archive/prove/scripts.orig/conn-server.sh create mode 100755 rrdtools/archive/prove/scripts.orig/temp-hd.sh create mode 100644 rrdtools/archive/prove/test.sh create mode 100755 rrdtools/archive/rrd-hddmon.pl create mode 100644 rrdtools/dbase/bw-bge0.rrd create mode 100644 rrdtools/dbase/bw-em0.rrd create mode 100644 rrdtools/dbase/conn-server.rrd create mode 100644 rrdtools/dbase/cpu-server.rrd create mode 100644 rrdtools/dbase/hd-server.rrd create mode 100644 rrdtools/dbase/temp-hd.rrd create mode 100644 rrdtools/img/bw-bge0.png create mode 100644 rrdtools/img/conn-server.png create mode 100644 rrdtools/img/cpu-server.png create mode 100644 rrdtools/img/hd-server.png create mode 100644 rrdtools/img/small-bw-bge0.png create mode 100644 rrdtools/img/small-conn-server.png create mode 100644 rrdtools/img/small-cpu-server.png create mode 100644 rrdtools/img/small-hd-server.png create mode 100644 rrdtools/img/small-temp-hd.png create mode 100644 rrdtools/img/temp-hd.png create mode 100755 rrdtools/rrd-generate.sh create mode 100644 rrdtools/rrdtool.conf create mode 100755 rrdtools/scripts/bw-bge0.sh create mode 100755 rrdtools/scripts/conn-server.sh create mode 100755 rrdtools/scripts/conn-server.sh.snmp create mode 100755 rrdtools/scripts/cpu-server.sh create mode 100755 rrdtools/scripts/hd-server.sh create mode 100755 rrdtools/scripts/old/bw-bge0.sh.old create mode 100755 rrdtools/scripts/old/bw-em0.sh create mode 100755 rrdtools/scripts/old/hd-server.sh.old create mode 100755 rrdtools/scripts/old/temp-hd.sh.old create mode 100755 rrdtools/scripts/temp-hd.sh create mode 100644 rrdtools/test.sh create mode 100644 sendmail-log.php create mode 100644 sendmail-mailq.php create mode 100644 spam-log.php create mode 100644 spam-manage.php create mode 100644 spamass-log.php create mode 100644 squid-acl.php create mode 100644 squid-guard.php create mode 100644 squid-log.php create mode 100755 sudo_cmd/.off/chmod-homedir.sh create mode 100755 sudo_cmd/.off/mail-sync-fwd.sh create mode 100755 sudo_cmd/.off/mail-sync.sh create mode 100755 sudo_cmd/.off/mkdir-homedir.sh create mode 100755 sudo_cmd/.off/readpwd.sh create mode 100755 sudo_cmd/mng_maillog.sh create mode 100755 sudo_cmd/mng_user.sh create mode 100644 sudo_cmd/out/import-email.sql create mode 100644 sudo_cmd/petar.company.sudoers create mode 100755 sudo_cmd/qtool.pl create mode 100755 sudo_cmd/radius-sync.sh create mode 100755 sudo_cmd/squid-sync.sh create mode 100644 sudo_cmd/tools.cfg create mode 100644 tools-net.php create mode 100755 tools/init_system.sh create mode 100755 tools/mail-fromlist.pl create mode 100755 tools/pls.pl create mode 100755 tools/sendmail_stats.pl create mode 100755 tools/system2petar/.old/mail-sys-import.pl create mode 100755 tools/system2petar/.old/radius-convert-old-fmt.pl create mode 100755 tools/system2petar/.old/virt-sys-import.pl create mode 100644 tools/system2petar/CREATE TABLE MAILUSER (login varchar(20) primary key, pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); create mode 100644 tools/system2petar/DROP TABLE IF EXISTS MAILUSER create mode 100755 tools/system2petar/convert_old_mailuser.sh create mode 100644 tools/system2petar/db.fwduser.sql create mode 100644 tools/system2petar/db.spamilter.sql create mode 100644 tools/system2petar/mail.csv create mode 100644 tools/system2petar/master.passwd create mode 100755 tools/system2petar/master.passwd-import.sh create mode 100755 tools/system2petar/spamilter-db-import.sh diff --git a/aboutme.php b/aboutme.php new file mode 100644 index 0000000..70aca14 --- /dev/null +++ b/aboutme.php @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + About me + + + + + Empty Page ... no time to write it, yet ... + + + + + + + + + + + + + + + diff --git a/admin-webpwd.php b/admin-webpwd.php new file mode 100644 index 0000000..30647bf --- /dev/null +++ b/admin-webpwd.php @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + Cambio password di accesso + + +"; + +$_REQUEST["step"] = $_REQUEST["step"] ?? ''; +if (!$_REQUEST["step"]){ + + echo "
". + "Nuova pwd". + "  ". + "". + "  ". + "[ Salva pwd ]". + "
"; + +} else { + + $handle = fopen("$program_admin_user", "w"); + fwrite($handle,"admin:"); + fwrite($handle,crypt($_REQUEST["npwd"], '$6$')."\n"); + fclose($handle); + + echo "Aggiornamento dati effettuato". + "

Home Page"; + +} + + +?> + + + + + + diff --git a/cfg_apps/mail/top.localhostnames b/cfg_apps/mail/top.localhostnames new file mode 100644 index 0000000..e69de29 diff --git a/cfg_apps/mail/top.virtusertable b/cfg_apps/mail/top.virtusertable new file mode 100644 index 0000000..8129fe4 --- /dev/null +++ b/cfg_apps/mail/top.virtusertable @@ -0,0 +1,5 @@ +# +### Petar defaults +# +@pluto.it me + diff --git a/cfg_apps/nginx/sites.conf b/cfg_apps/nginx/sites.conf new file mode 100644 index 0000000..4b7446d --- /dev/null +++ b/cfg_apps/nginx/sites.conf @@ -0,0 +1,7 @@ + + + + location /petar.company { + auth_basic "closed site"; + auth_basic_user_file /home/web/default/petar.company/db/admin.db3; + } diff --git a/cfg_apps/petar/petar.cfg b/cfg_apps/petar/petar.cfg new file mode 100644 index 0000000..be08fb7 --- /dev/null +++ b/cfg_apps/petar/petar.cfg @@ -0,0 +1,26 @@ +PETARDIR="petar.company"; + +BASEDIR="/home/web/default/${PETARDIR}"; +WEBDIR="/${PETARDIR}"; +PETARDB="${BASEDIR}/db/petar.db3" + +DATA=`/bin/date "+%Y%m%d%H%M%S"`; + +### mail-users +UID="2001,30000"; +GID="users"; +GIN=`getent group ${GID} | cut -d: -f3` + +VIRT_TOP="${BASEDIR}/cfg_apps/mail/top.virtusertable"; +VIRT_BAK="${BASEDIR}/bak/${DATA}-virtusertable"; +VIRT_FILE="/etc/mail/virtusertable"; + +LHN_TOP="${BASEDIR}/cfg_apps/mail/top.localhostnames"; +LHN_BAK="${BASEDIR}/bak/${DATA}-local-host-names"; +LHN_FILE="/etc/mail/local-host-names"; + +### radius-sync +RADIUS_QUEUEDIR="${BASEDIR}/queue"; +RADIUS_ETC_DIR="/usr/local/etc/raddb"; +RADIUS_SRC_USER="users.queue"; +RADIUS_DST_USER="users"; diff --git a/cfg_apps/squid/bad_url.txt b/cfg_apps/squid/bad_url.txt new file mode 100644 index 0000000..c984a23 --- /dev/null +++ b/cfg_apps/squid/bad_url.txt @@ -0,0 +1,2 @@ +pippo.it +10.10.8.17 diff --git a/cfg_apps/squid/bad_users.txt b/cfg_apps/squid/bad_users.txt new file mode 100644 index 0000000..4f7d244 --- /dev/null +++ b/cfg_apps/squid/bad_users.txt @@ -0,0 +1 @@ +10.10.99.99 \ No newline at end of file diff --git a/cfg_apps/squid/good_users.txt b/cfg_apps/squid/good_users.txt new file mode 100644 index 0000000..cf89b59 --- /dev/null +++ b/cfg_apps/squid/good_users.txt @@ -0,0 +1,34 @@ +10.10.1.21 +10.10.1.23 +10.10.2.10 +10.10.2.14 +10.10.2.15 +10.10.2.16 +10.10.2.17 +10.10.2.18 +10.10.2.19 +10.10.2.20 +10.10.2.22 +10.10.2.27 +10.10.2.28 +10.10.2.32 +10.10.2.35 +10.10.2.37 +10.10.2.40 +10.10.2.41 +10.10.2.42 +10.10.2.50 +10.10.2.52 +10.10.2.54 +10.10.2.56 +10.10.2.57 +10.10.2.64 +10.10.2.65 +10.10.2.78 +10.10.2.79 +10.10.2.80 +10.10.2.81 +10.10.2.82 +10.10.2.70 +10.10.3.31 +10.10.5.45 \ No newline at end of file diff --git a/cfg_apps/squid/middle_url.txt b/cfg_apps/squid/middle_url.txt new file mode 100644 index 0000000..831b534 --- /dev/null +++ b/cfg_apps/squid/middle_url.txt @@ -0,0 +1,22 @@ +sesso +ebay +genialloyd.it +video.libero.it +Pentacore +porno +freeporno +peternorth +akvideo +69stream.com +youtube.com +filekicker.net +software-locator.com +rapidshare.com +filestube.com +facebook.com +googlevideo.com +pornhub.com +redtube.com +videos.com +xvideos.com +video \ No newline at end of file diff --git a/cfg_apps/squid/middle_users.txt b/cfg_apps/squid/middle_users.txt new file mode 100644 index 0000000..cc414d3 --- /dev/null +++ b/cfg_apps/squid/middle_users.txt @@ -0,0 +1,62 @@ +10.10.1.11 +10.10.1.12 +10.10.1.13 +10.10.1.15 +10.10.1.16 +10.10.1.17 +10.10.1.18 +10.10.1.19 +10.10.1.20 +10.10.1.22 +10.10.1.24 +10.10.1.28 +10.10.1.29 +10.10.1.33 +10.10.1.36 +10.10.2.20 +10.10.2.21 +10.10.2.26 +10.10.2.53 +10.10.2.55 +10.10.2.60 +10.10.2.65 +10.10.2.71 +10.10.2.99 +10.10.3.12 +10.10.3.14 +10.10.3.22 +10.10.3.23 +10.10.3.24 +10.10.3.25 +10.10.3.27 +10.10.3.32 +10.10.4.10 +10.10.4.11 +10.10.4.12 +10.10.4.15 +10.10.4.16 +10.10.4.17 +10.10.4.20 +10.10.4.27 +10.10.4.28 +10.10.5.13 +10.10.5.14 +10.10.5.18 +10.10.5.21 +10.10.5.24 +10.10.5.29 +10.10.5.28 +10.10.5.34 +10.10.5.35 +10.10.5.36 +10.10.5.41 +10.10.5.42 +10.10.5.44 +10.10.5.51 +10.10.7.16 +10.10.7.17 +10.10.7.18 +10.10.7.21 +10.10.8.10 +10.10.8.18 +10.10.8.12 \ No newline at end of file diff --git a/cfg_apps/webalizer/webalizer-squid.conf b/cfg_apps/webalizer/webalizer-squid.conf new file mode 100644 index 0000000..f04d32f --- /dev/null +++ b/cfg_apps/webalizer/webalizer-squid.conf @@ -0,0 +1,74 @@ +PageType htm* +PageType cgi +PageType phtml +PageType php3 +PageType pl + +HTMLPre +HTMLHead +HTMLBody +HTMLPost
+HTMLTail 100% Micro$oft free! +HTMLEnd + +Quiet yes +ReallyQuiet yes +CountryGraph no +DailyGraph yes +DailyStats yes +HourlyGraph yes +HourlyStats yes +#GraphLegend yes +#GraphLines 2 +TopSites 45 +TopKSites 45 +TopURLs 45 +TopKURLs 45 +TopReferrers 45 +TopAgents 45 +TopCountries 0 +TopEntry 0 +TopExit 0 +TopSearch 0 +TopUsers 0 + +#AllSites no +AllURLs yes +#AllReferrers no +#AllAgents no +#AllSearchStr no +#AllUsers no + +#IndexAlias home.htm +#IndexAlias homepage.htm + +HideURL *.gif +HideURL *.GIF +HideURL *.jpg +HideURL *.JPG +HideURL *.png +HideURL *.PNG +HideURL *.ra +HideURL *.js +HideURL *.css + +HideAllSites yes +GroupDomains 2 +GroupShading yes +GroupHighlight yes + +SearchEngine yahoo.com p= +SearchEngine altavista.com q= +SearchEngine google.com q= +SearchEngine eureka.com q= +SearchEngine lycos.com query= +SearchEngine hotbot.com MT= +SearchEngine msn.com MT= +SearchEngine infoseek.com qt= +SearchEngine webcrawler searchText= +SearchEngine excite search= +SearchEngine netscape.com search= +SearchEngine mamma.com query= +SearchEngine alltheweb.com query= +SearchEngine northernlight.com qr= + diff --git a/cisco-show.php b/cisco-show.php new file mode 100644 index 0000000..93dcfbc --- /dev/null +++ b/cisco-show.php @@ -0,0 +1,102 @@ + + + + + +
+ + + + + +
Cisco
+
METHOD=POST> + device: + +   + cmd: + +   + opt : +   + +
+ +". + "
". + "
";
+	
+	passthru("echo ".$data."|".$cmd);
+
+
+	echo	"
"; +} +?> + +
+
diff --git a/css/cnet.css b/css/cnet.css new file mode 100644 index 0000000..0c36935 --- /dev/null +++ b/css/cnet.css @@ -0,0 +1,68 @@ +A { + color : #006040; + font-family : "Trebuchet MS"; + font-size : small; + font-style : normal; + text-decoration : none; +} + +A:HOVER { + background-color : #002184; + color : Yellow; +} + +TABLE { + font : smaller Trebuchet MS; + font-size : small; + font-style : normal; + text-decoration : none; + color : #002184; + empty-cells: show; +} + +TD { + font : smaller Trebuchet MS; + font-size : small; + font-style : normal; + text-decoration : none; + color : #002184; +} + +PRE { + font : smaller Trebuchet MS; + font-size : small; + font-style : normal; + text-decoration : none; + color : #002184; +} +.smallfnt { + font : Trebuchet MS; + color : #002184; +} +.errore { + font : Trebuchet MS; + color : red; +} + +table.mytable { + border-style: none none none none; + border-collapse: collapse; +} + +table.mytable td { + border-width: thin thin thin thin; + border-style: inset inset inset inset; + border-color: navy navy navy navy; + padding: 5px 5px 5px 5px; + -moz-border-radius: 0px 0px 0px 0px; +} + +table.noborder { + border-style: none none none none; + border-collapse: collapse; +} + +table.noborder td { + padding: 5px 5px 5px 5px; + -moz-border-radius: 0px 0px 0px 0px; +} diff --git a/css/cnet.css.orig b/css/cnet.css.orig new file mode 100644 index 0000000..6c500b5 --- /dev/null +++ b/css/cnet.css.orig @@ -0,0 +1,68 @@ +A { + color : #006040; + font-family : "Trebuchet MS"; + font-size : x-small; + font-style : normal; + text-decoration : none; +} + +A:HOVER { + background-color : #002184; + color : Yellow; +} + +TABLE { + font : smaller Trebuchet MS; + font-size : x-small; + font-style : normal; + text-decoration : none; + color : #002184; + empty-cells: show; +} + +TD { + font : smaller Trebuchet MS; + font-size : x-small; + font-style : normal; + text-decoration : none; + color : #002184; +} + +PRE { + font : smaller Trebuchet MS; + font-size : x-small; + font-style : normal; + text-decoration : none; + color : #002184; +} +.smallfnt { + font : Trebuchet MS; + color : #002184; +} +.errore { + font : Trebuchet MS; + color : red; +} + +table.mytable { + border-style: none none none none; + border-collapse: collapse; +} + +table.mytable td { + border-width: thin thin thin thin; + border-style: inset inset inset inset; + border-color: navy navy navy navy; + padding: 5px 5px 5px 5px; + -moz-border-radius: 0px 0px 0px 0px; +} + +table.noborder { + border-style: none none none none; + border-collapse: collapse; +} + +table.noborder td { + padding: 5px 5px 5px 5px; + -moz-border-radius: 0px 0px 0px 0px; +} diff --git a/css/petar.css b/css/petar.css new file mode 100644 index 0000000..e1dce1c --- /dev/null +++ b/css/petar.css @@ -0,0 +1,110 @@ +A { + color : #006040; + font-family : "Trebuchet MS"; + font-size : small; + font-style : normal; + text-decoration : none; +} + +A:HOVER { + background-color : #002184; + color : Yellow; +} + +TABLE { + font : smaller Trebuchet MS; + font-size : small; + font-style : normal; + text-decoration : none; + color : #002184; + empty-cells: show; +} + +TD { + font : smaller Trebuchet MS; + font-size : small; + font-style : normal; + text-decoration : none; + color : #002184; +} + +PRE { + font : smaller Trebuchet MS; + font-size : small; + font-style : normal; + text-decoration : none; + color : #002184; +} +.smallfnt { + font : Trebuchet MS; + color : #002184; +} +.errore { + font : Trebuchet MS; + color : red; +} + +table.mytable { + border-style: none none none none; + border-collapse: collapse; +} + +table.mytable td { + border-width: thin thin thin thin; + border-style: inset inset inset inset; + border-color: navy navy navy navy; + padding: 5px 5px 5px 5px; + -moz-border-radius: 0px 0px 0px 0px; +} + +table.noborder { + border-style: none none none none; + border-collapse: collapse; +} + +table.noborder td { + padding: 5px 5px 5px 5px; + -moz-border-radius: 0px 0px 0px 0px; +} + +#navbar { + background-color: navy; + width: 100%; + margin: 0; + padding: 0; + height: 34px; +} + +#navbar li { + list-style: none; + float: left; } + +#navbar li a { + display: block; + padding: 8px 12px; + background-color: navy; + color: yellow; + text-decoration: none; } + +#navbar li ul { + display: none; + background-color: navy;} + +#navbar li:hover ul, #navbar li.hover ul { + display: block; + position: absolute; + margin: 0; + padding: 0; } + +#navbar li:hover li, #navbar li.hover li { + float: none; } + +#navbar li:hover li a, #navbar li.hover li a { + background-color: navy; + border-bottom: 1px solid #ffffff; + color: #ffffff; } + +#navbar li li a:hover { + color: red; + background-color: navy; } + diff --git a/db/.old/init-tables.sql.old b/db/.old/init-tables.sql.old new file mode 100644 index 0000000..65e4f6e --- /dev/null +++ b/db/.old/init-tables.sql.old @@ -0,0 +1,16 @@ +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; +CREATE TABLE RADIUSUSER (ip varchar (15), netmask varchar(15), login varchar (20), pwd varchar (20), vendor varchar (15), opt1 varchar (15), opt2 varchar (15)); +CREATE TABLE MAILUSER (login varchar(20) primary key, pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); +CREATE TABLE FWDUSER (email varchar(100) primary key, fwdaddr varchar(100), domain varchar(100)); +CREATE TABLE SPAMILTER (id integer primary key, type char(3), field1 varchar(90), field2 varchar(90), field3 varchar(20), field4 varchar(10) ); +COMMIT; + +exit + +# spamilter +INSERT INTO spamilter VALUES(1,'SND','22srl.it','fabiana.galassi','Accept',NULL); +field1=domain +field2=email +field3=action +field4=note ? diff --git a/db/.old/petar.db3.old b/db/.old/petar.db3.old new file mode 100644 index 0000000000000000000000000000000000000000..e188b4f83ab97b66496e922614705369f9854aa0 GIT binary patch literal 73728 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 literal 0 HcmV?d00001 diff --git a/db/admin.db3 b/db/admin.db3 new file mode 100644 index 0000000..28f368b --- /dev/null +++ b/db/admin.db3 @@ -0,0 +1 @@ +admin:$6$$wXVxM99K1ZAx6iLWT36OxP6TB5CyJnoff0/gCaYb6.peZGY38RDI7Qn9OTz0EbbD9Ea3/t3mtJEQbAWwb4a.I1 diff --git a/db/empty.db3 b/db/empty.db3 new file mode 100644 index 0000000000000000000000000000000000000000..f1bde48d77c9c27e27030b069e7faf936d4c77eb GIT binary patch literal 28672 zcmeI%!Ee$~9Ki8*V_=MoB_22svbTdt8>hkuCLWCIHcW_+IAHNe>e@jwpbY9JdV)W~ zztKO#_bR0nV?22w-GKg*@EKlY!>3mO6lAbu%*L*`?%NZiVjc^}AKKnX+}o2d^rj?Zt_%&5A^SS;{P?yLb(M`@hUOI0T zbj=$%?$_zvKz<)~?Jt2JUU!!hcFW67dj4)FlP?za#buam)2cUAw$XVvk!}?NBZJJSbEF4s9&{J@o{e_QGOhk@6|ZURT$-}Om^f3LwkA~ zMSlkqOu`6DShHD1?%k2&uhw=so<9!C(O_}tBoQ*Rs*VHoLqh-o1Q0*~0R#|0009IL zKmdVl72x}STUVC45I_I{1Q0*~0R#|0009ILhy@<2F8lv62t5Q4KmY**5I_I{1Q0*~ z0R*;Cfc^h1TvSRz009ILKmY**5I_I{1Q0-ALxBDN4G=C7KmY**5I_I{1Q0*~0R#}( fLIL*ww{TG@2>}EUKmY**5I_I{1Q0*~fenFQ;}-je literal 0 HcmV?d00001 diff --git a/db/init-tables.sql b/db/init-tables.sql new file mode 100644 index 0000000..d06e2d2 --- /dev/null +++ b/db/init-tables.sql @@ -0,0 +1,7 @@ +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; +CREATE TABLE RADIUSUSER (ip varchar (15), netmask varchar(15), login varchar (20), pwd varchar (20), vendor varchar (15), opt1 varchar (15), opt2 varchar (15)); +CREATE TABLE MAILUSER (login varchar(20) primary key, pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); +CREATE TABLE FWDUSER (email varchar(100) primary key, fwdaddr varchar(100), domain varchar(100)); +CREATE TABLE SPAMILTER (id integer primary key, type char(3), domain varchar(90), email varchar(90), action varchar(20), other varchar(10) ); +COMMIT; diff --git a/db/petar.db3 b/db/petar.db3 new file mode 100644 index 0000000000000000000000000000000000000000..8c1c003058b77a9b58ebc7c1200d223d08dd6119 GIT binary patch literal 77824 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 literal 0 HcmV?d00001 diff --git a/db/petar.db3.jacky b/db/petar.db3.jacky new file mode 100644 index 0000000000000000000000000000000000000000..cbe99d147361f31423b8fd4bb0d6e4cb80db6c7b GIT binary patch literal 73728 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 + + + + + + + + + + + + + + Empty Page + + + + + + diff --git a/grey-log.php b/grey-log.php new file mode 100644 index 0000000..a0d0d6e --- /dev/null +++ b/grey-log.php @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + Spam Filter + + + + +

METHOD=POST> + + + Tipologia rifiuto : + + + +

+ Chiave di ricerca alternativa (es. 14:12 oppure nome@ ) + " > + +

+ + "; + + chdir($grey_log_dir); + echo ""; + array_multisort(array_map('filemtime', ($logfiles = glob("greylist.log.*", GLOB_BRACE))), SORT_DESC, $logfiles); + foreach($logfiles as $file) + { + echo ""; + } + echo ""; + + + + + ?> + + + + Ricerca ]"; + ?> + + + +

+ + + +". + "Nr.". + "Data". + "Esito". + "Indirizzo IP". + "Mittente". + "Destinatario". + "Inf.Aggiutive"; + + + +# 2012/06/15 22:26:06 smtp13.j2.com [204.11.168.115] NoReply@MyFax.com -> matteo@bellandi.it accept (ACL 117) Sender IP whitelisted by DNSRBL, not delayed by milter-greylist-4.2.7 (freebsd.bellandi.it [83.149.158.114]); Fri, 15 Jun 2012 22:26:06 +0200 (CEST) + +$cmdstr = $grepbin." -m ".$_REQUEST["nlog"]." \"".$_REQUEST["key"]."\" ".$grey_log_dir."/".$_REQUEST["grey_log_file"]; + +$fp = popen($cmdstr, 'r'); + + while ($line = fgets($fp, 4096)){ + + + preg_match_all("|(.{20}).*\[(.*)\] (.*) -\> (.*) (.*) (\(.*\)) .*$|U",$line,$out, PREG_PATTERN_ORDER); + + + switch ($out[5][0]){ + + case "tempfail": + $fnt_color="magenta"; + break; + + case "accept": + $fnt_color="green"; + break; + + case "reject": + $fnt_color="red"; + break; + } + + echo ""; + echo "".++$index.""; + echo "".$out[1][0].""; + echo "".$out[5][0].""; + echo "".$out[2][0].""; + echo "".$out[3][0].""; + echo "".$out[4][0].""; + echo "".substr($out[6][0],0,50).""; + + } + +pclose($fp); + +} + +?> + + + + + + diff --git a/include/cfg-cisco2800.php b/include/cfg-cisco2800.php new file mode 100644 index 0000000..10c6a1b --- /dev/null +++ b/include/cfg-cisco2800.php @@ -0,0 +1,11 @@ + diff --git a/include/cfg-cisco7200.php b/include/cfg-cisco7200.php new file mode 100644 index 0000000..726d469 --- /dev/null +++ b/include/cfg-cisco7200.php @@ -0,0 +1,12 @@ + diff --git a/include/cfg-customer.php b/include/cfg-customer.php new file mode 100644 index 0000000..90e040c --- /dev/null +++ b/include/cfg-customer.php @@ -0,0 +1,5 @@ + diff --git a/include/cfg-mail.php b/include/cfg-mail.php new file mode 100644 index 0000000..000d595 --- /dev/null +++ b/include/cfg-mail.php @@ -0,0 +1,14 @@ + diff --git a/include/cfg-petar.php b/include/cfg-petar.php new file mode 100644 index 0000000..2c3019f --- /dev/null +++ b/include/cfg-petar.php @@ -0,0 +1,12 @@ + diff --git a/include/cfg-radius.php b/include/cfg-radius.php new file mode 100644 index 0000000..33253cb --- /dev/null +++ b/include/cfg-radius.php @@ -0,0 +1,7 @@ + diff --git a/include/cfg-sendmail.php b/include/cfg-sendmail.php new file mode 100644 index 0000000..1a3e662 --- /dev/null +++ b/include/cfg-sendmail.php @@ -0,0 +1,10 @@ + diff --git a/include/cfg-spam.php b/include/cfg-spam.php new file mode 100644 index 0000000..a4e408d --- /dev/null +++ b/include/cfg-spam.php @@ -0,0 +1,16 @@ + diff --git a/include/cfg-squid.php b/include/cfg-squid.php new file mode 100644 index 0000000..277ad9d --- /dev/null +++ b/include/cfg-squid.php @@ -0,0 +1,20 @@ + diff --git a/include/db.php b/include/db.php new file mode 100644 index 0000000..1f5b75c --- /dev/null +++ b/include/db.php @@ -0,0 +1,5 @@ + diff --git a/include/import-email-ablia.com.sql b/include/import-email-ablia.com.sql new file mode 100644 index 0000000..987b396 --- /dev/null +++ b/include/import-email-ablia.com.sql @@ -0,0 +1,6 @@ +drop table mailuser; +create table mailuser (uid integer autoincrement primary key,login varchar(20), pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); +insert into mailuser (uid,login) values ('1999','removeme'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('acolzi','$1$UpIUL6My$C7avkcfhNKD2zIG5.MA0q.','2000','acolzi@ablia.com','/home/acolzi','/bin/tcsh','ablia.com'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('pippolo','$1$kJ7tj8Ku$bOCBleY1asCVbgvX.T1xV/','2000','pippolo@ablia.com','/home/mailusers/pippolo','/sbin/nologin','ablia.com'); +delete from mailuser where uid = '1999'; diff --git a/include/import-email.sql b/include/import-email.sql new file mode 100644 index 0000000..987b396 --- /dev/null +++ b/include/import-email.sql @@ -0,0 +1,6 @@ +drop table mailuser; +create table mailuser (uid integer autoincrement primary key,login varchar(20), pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); +insert into mailuser (uid,login) values ('1999','removeme'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('acolzi','$1$UpIUL6My$C7avkcfhNKD2zIG5.MA0q.','2000','acolzi@ablia.com','/home/acolzi','/bin/tcsh','ablia.com'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('pippolo','$1$kJ7tj8Ku$bOCBleY1asCVbgvX.T1xV/','2000','pippolo@ablia.com','/home/mailusers/pippolo','/sbin/nologin','ablia.com'); +delete from mailuser where uid = '1999'; diff --git a/include/inc-footer.php b/include/inc-footer.php new file mode 100644 index 0000000..b8db8b5 --- /dev/null +++ b/include/inc-footer.php @@ -0,0 +1 @@ + diff --git a/include/inc-header.php b/include/inc-header.php new file mode 100644 index 0000000..e6b965e --- /dev/null +++ b/include/inc-header.php @@ -0,0 +1,35 @@ + + + + + + + +You are using Petar, the loved/hated Gianmarco admin tools + + + + + + + + + + + diff --git a/include/inc-top.php b/include/inc-top.php new file mode 100644 index 0000000..e179749 --- /dev/null +++ b/include/inc-top.php @@ -0,0 +1,92 @@ + + + + +

+ + + + + + +". + "". + ""; + + require 'include/inc-footer.php'; + exit; +} + + +$_REQUEST["step"]=$_REQUEST["step"] ?? null; +if (!$_REQUEST["step"]){ + + $sql="SELECT domain FROM MAILUSER group by domain order by domain"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + echo "email in nuovo dominio". + "". + "[ Inizializza il dominio ]: ". + "". + "  ". + ""; + + if ( count($rows) > 0 ) { + + echo "email in dominio esistente". + "". + "[ Crea nuova email nel seguente dominio ]:". + "". + " ". + "". + "

"; + } + +} + +if ($_REQUEST["step"] == "1"){ + + if ($_REQUEST["domain"]){ + + $_REQUEST["domain"] = preg_replace("/[^A-Za-z0-9.-]/", '', $_REQUEST["domain"]); + + # Make some defaults + # Pwd + $stringa = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ikolp"; + $pwd=substr(str_shuffle($stringa),0,6); + + echo "Ultime (max 30) email del dominio: ".$_REQUEST["domain"]."". + "
"; + + echo "

". + "". + "". + "
+ + diff --git a/include/layout.php b/include/layout.php new file mode 100644 index 0000000..c88cb54 --- /dev/null +++ b/include/layout.php @@ -0,0 +1,8 @@ + diff --git a/include/users.php b/include/users.php new file mode 100644 index 0000000..2f0c850 --- /dev/null +++ b/include/users.php @@ -0,0 +1,6 @@ + diff --git a/index.php b/index.php new file mode 100644 index 0000000..47fb7a4 --- /dev/null +++ b/index.php @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + +Modo operativo Ristretto. Nessuna scrittura sul sistema operativo"; + } else { + $modo_operativo = "Accesso completo al sistema operativo. Gli utenti inseriti saranno migrati nei file di sistema"; + } + + + + if ($mail_mode == "fwd") { + $modo_posta = "Server di inoltro. Nessun utente verra' creato localmente ma verrano generate le tabelle di inoltro verso un altro server di posta."; + } else { + $modo_posta = "Server di posta e utenti locali. Tutti i parametri saranno registrati nei database del sistema operativo"; + } + + echo " + + + +". + "". + "". + "". + "". + "
Variabili di Ambiente
Program : +
Program Version Name: +
Program Version Nr. : +
Server OS:FreeBSD +
Server Name: +
Server Port: +
Server Software: +
Client IP: +
Client Agent: +
User: +
Server Auth: +
Server ReqTime: +
Modalita' Operativa
Modo Operativo
\$restricted_petar [1/0 o true/false] = ".(int)$restricted_petar."
".$modo_operativo; + echo "
Modalita' creazione utenti di posta
\$mail_mode [ full/fwd ] = ".$mail_mode."
".$modo_posta; + +?> + +
Fortune
colspan=2> + +
+	
+	
+ + + + + + diff --git a/mail-adduser-fwd.php b/mail-adduser-fwd.php new file mode 100644 index 0000000..f4326da --- /dev/null +++ b/mail-adduser-fwd.php @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + +
Email"; + + +$_REQUEST["step"] = $_REQUEST["step"] ?? ''; +$_REQUEST["fwdaddr1"] = $_REQUEST["fwdaddr1"] ?? ''; +$_REQUEST["fwdaddr2"] = $_REQUEST["fwdaddr2"] ?? ''; +$_REQUEST["email"] = $_REQUEST["email"] ?? ''; + +if (!$_REQUEST["step"]){ + + $sql="SELECT domain FROM FWDUSER group by domain order by domain"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + echo "email in nuovo dominio". + "
". + "[ Inizializza il dominio ]: ". + "". + "  ". + "
"; + + if ( count($rows) > 0 ) { + + echo "email in dominio esistente". + "
". + "[ Crea nuova email nel seguente dominio ]:". + "". + " ". + "
". + "

"; + } + +} + +if ($_REQUEST["step"] == "1"){ + + if ($_REQUEST["domain"]){ + + $_REQUEST["domain"] = preg_replace("/[^A-Za-z0-9.-]/", '', $_REQUEST["domain"]); + + echo "Ultima email del dominio: ".$_REQUEST["domain"]."". + "

"; + + echo "
nr". + "email". + "fwd". + "domain"; + + # Contiamo quante email per prenderne poi le ultime "1". + $sql="SELECT email FROM FWDUSER where domain = '".$_REQUEST["domain"]."'"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + $LIMIT = "LIMIT ".(count($rows) - 1).",30"; + + # Troviamo le ultime "1" email del dominio + + $sql = "SELECT email,fwdaddr,domain FROM FWDUSER where domain = '".$_REQUEST["domain"]."' order by email ".$LIMIT; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + $index=0; + + if ( count($rows) > 0) { + + foreach($rows as $row){ + $index += 1; + echo "
".$index. + "".$row["email"]. + "".$row["fwdaddr"]. + "".$row["domain"]; + } + + } else { + + echo "
no email found"; + + } + + echo "
". + "Dati nuovo utente:". + "

". + "email internet: "; + +?> + + + +>  ". + "alias o email di inoltro: ". + "  @  ". + "". + "

". + "
email:
". + "

    ". + "
  • la prima parte della mail (il dominio e' gia' aggiunto in automatico)". + "
  • * (per indicare un collettore)". + "
". + "

". + "
alias o email di inoltro:
". + "

    ". + "
  • una email completa diversa, es: diversa_email@differente_dominio.it
    ". + "
  • la prima parte della mail (il server di inoltro e' selezionato in automatico)". + "
  • un alias locale (selezionare apposita voce dal menu a tendina)". + "
". + "

". + " [ crea questa email ]". + "  ". + " [ annulla ]". + "". + "". + "

"; + + } else { // $_REQUEST["domain"] = ""; + echo "Errore

". + "Campo nuovo dominio vuoto". + "

Correzione"; + } + +} + +if ($_REQUEST["step"] == "2"){ + + $_REQUEST["fwdaddr1"] = filter_var($_REQUEST["fwdaddr1"], FILTER_SANITIZE_EMAIL); + if (filter_var($_REQUEST["fwdaddr1"], FILTER_VALIDATE_EMAIL) || ( $_REQUEST["fwdaddr2"] == '') ) { + + $fwdaddr=strtolower($_REQUEST["fwdaddr1"]); + + } else { + + $fwdaddr=strtolower($_REQUEST["fwdaddr1"]."@".$_REQUEST["fwdaddr2"]); + + } + + $email=strtolower($_REQUEST["email"]."@".$_REQUEST["domain"]); + $errore=false; + + $sql = "SELECT email FROM FWDUSER where email = '".$email."'"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + $errore .= "email $email presente

"; + } + + if (strlen($_REQUEST["fwdaddr1"]) < "3" && ($_REQUEST["fwdaddr1"] !="*") ){ + $errore .= "email ".$email." troppo corta

"; + } + + if ($errore){ + + echo "Errore

". + $errore. + "

Correzione"; + + } else { + + $sql = "insert into FWDUSER (email,fwdaddr,domain) VALUES ('".$email."','".$fwdaddr."','".$_REQUEST["domain"]."')"; + $count = $dbh->exec($sql); + + echo "

MAIL DB ... OK
". + "[ Sincronizza ] o aspetta 2s per la procedura automatica"; + + echo ''; + } +} + +?> + + + + + + diff --git a/mail-adduser.php b/mail-adduser.php new file mode 100644 index 0000000..cbe5331 --- /dev/null +++ b/mail-adduser.php @@ -0,0 +1,224 @@ + + + + + + + + + + + + + +

Email"; + +if ($restricted_petar == true){ + + + echo "
impossibile creare utenti nel sistema operativo.
- per abilitare la scrittura settare la seguente variabile ". + "restricted_petar = false nel file : include/cfg-mail.php
nr". + "login". + "email". + "domain"; + + # Contiamo quante email per prenderne poi le ultime 30. + + $sql="SELECT login FROM MAILUSER where domain = '".$_REQUEST["domain"]."'"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + $LIMIT = "LIMIT ".(count($rows) - 30).",30"; + + # Troviamo le ultime 30 email del dominio + + $sql = "SELECT login,email,domain FROM MAILUSER where domain = '".$_REQUEST["domain"]."' ".$LIMIT; + $index = 0; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + foreach($rows as $row){ + $index += 1; + echo "
".$index. + "".$row["login"]. + "".$row["email"]. + "".$row["domain"]; + } + + + echo "
". + "Dati nuovo utente:". + "

". + "login: ". + "  ". + "pwd : ". + "  ". + "email: @ ".$_REQUEST["domain"]. + "

". + "shell:  ". + "  ". + " [ crea questa email ]". + "  ". + " [ annulla ]". + "". + "". + "

"; + + + } else { + + echo "

 

Errore

". + "Campo nuovo dominio vuoto". + "

Correzione"; + } +} + +if ($_REQUEST["step"] == "2"){ + + $errore=false; + + $email=strtolower($_REQUEST["email"]) ?? ''; + $domain=strtolower($_REQUEST["domain"]) ?? ''; + $login=strtolower($_REQUEST["login"]) ?? ''; + $shell=$_REQUEST["shell"] ?? ''; + $pwd=$_REQUEST["pwd"] ?? ''; + $fullemail = strtolower($email."@".$domain); + + $sql = "SELECT email FROM MAILUSER where email = '".$fullemail."'"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + $errore .= "email $fullemail presente

"; + } + + if (strlen($email) < "3"){ + $errore .= "email ".$email." troppo corta

"; + } + + if (strlen($login) < "3"){ + $errore .= "login ".$login." troppo corto

"; + } + + if (strlen($pwd) < "6"){ + $errore .= "pwd ".$pwd." troppo corta

"; + } + + $sql = "SELECT login FROM MAILUSER where login = '".$login."'"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + $errore .= "login ".$login." presente. Riesegui la procedura per una nuova generazione

"; + } + + if ($errore){ + + echo "Errore

". + $errore. + "

Correzione"; + + } else { + + $result=false; + $sql = "insert into MAILUSER (login,pwd,gid,email,home,shell,domain) VALUES ('".$login."','".crypt($pwd, '$6$')."','2000','".$fullemail."','".$def_mail_user_home.$login."','".$shell."','".$_REQUEST["domain"]."')"; + $count = $dbh->exec($sql); + + passthru("/usr/local/bin/sudo ".$mng_user." ADD ".$login." ".crypt($pwd, '$6$')." ".$shell." ".$def_mail_user_home." ".$fullemail, $retval); + if ($retval != "0"){ + echo "Script to create USER - Execution exited with status code:".$retval; + exit; + } else { + echo "

USER DB ... OK"; + + echo "

MAIL DB ... OK
". + "[ Sincronizza ] o aspetta 2s per la procedura automatica"; + + echo ''; + } + } +} + +?> + + + + + + diff --git a/mail-restart.php b/mail-restart.php new file mode 100644 index 0000000..4b87688 --- /dev/null +++ b/mail-restart.php @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + +Sendmail Restart + +". + ""; + + echo "

+ [ DB rebuild TABLE: $TABLE ]
"; + $output = shell_exec("/usr/local/bin/sudo ".$mng_user." ".$PARAM); + echo "

". + "

$output
"; + + echo "

+ [ SRV restart ]
"; + $output = shell_exec("/usr/local/bin/sudo ".$mng_user." SRV "); + echo "

". + "

$output
"; + + echo ""; +?> + + + + + + diff --git a/mail-stat.php b/mail-stat.php new file mode 100644 index 0000000..0cd27a4 --- /dev/null +++ b/mail-stat.php @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + +Statistiche Email + +query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + foreach($rows as $row){ + if ($row["count"] == 1) { $bgcolor="#3fffcc";}; + if ($row["count"] > 1 && $row["count"] <= 5) { $bgcolor="#3dff77";}; + if ($row["count"] > 5 && $row["count"] <= 15) { $bgcolor="#b2ff37";}; + if ($row["count"] > 15 && $row["count"] <= 20) { $bgcolor="#ffa931";}; + if ($row["count"] > 20 && $row["count"] <= 100) { $bgcolor="#ff662f";}; + if ($row["count"] > 100) { $bgcolor="#ff2b2b";}; + echo "".$row["domain"]."".$row["count"]."
"; + } + + echo "Totale domini: ".count($rows); + + } else { + + echo "Email trovate0"; + + } + +?> + + + + + + diff --git a/mail-users-fwd.php b/mail-users-fwd.php new file mode 100644 index 0000000..fa3c7ac --- /dev/null +++ b/mail-users-fwd.php @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + +Mail Users + + + + +
METHOD=POST> + Parametri di filtro: +   [ >Reset to default ] +   [ Inizia ricerca ] +

+ + + +   + + +   + + +   ordina per : + + +   max : + + + + +

+ +query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) == 0 ) { + + echo "". + "Nessun record trovato"; + } else { + + echo "". + "nr". + "internet email". + "indirizzo di inoltro". + "dominio". + "x"; + + + $index = 0; + foreach($rows as $row){ + + $index = $index+1; + + if (($index % 2) == 0){ + $bgcolor = $bgcolora; + } else { + $bgcolor = $bgcolorb; + } + + echo "". + "".$index. + "". + $row['email']."". + "".$row['fwdaddr']. + "".$row['domain']. + ""; + + if ($admin_option){ + echo "". + "burn it"; + + } else { + echo "-"; + } + + echo ""; + } + } +} + +if ($_REQUEST["step"] == "3"){ + + + if (isset($_REQUEST["vapor"])) { + + + $sql = "DELETE from FWDUSER where email = '".$_REQUEST["email"]."'"; + $result=$dbh->exec($sql); + + echo "

Record felicemente cancellati: ".$result.""; + + passthru("/usr/local/bin/sudo ".$mng_user." FWD ", $retval); + if ($retval != "0"){ + echo "Script to generate MAIL FILES - Execution exited with status code:".$retval; + } else { + echo "

Mail DB files OK "; + } + + $output = shell_exec("/usr/local/bin/sudo ".$mng_user." SRV "); + echo "

". + "

$output
". + "

SRV restart ... OK
"; + echo ""; + + + } else { + + + $sql = "SELECT email, fwdaddr FROM FWDUSER where email = '".($_REQUEST["email"] ?? '')."'"; + $result=$dbh->query($sql); + $row=$result->fetch(); + + echo "". + "Sei sicuro di voler cancellare questo inoltro di posta:

". + "".$row["email"]." --> ".$row["fwdaddr"]."?

". + "La tua risposta e' [ Si, vaporizziamola ! | ". + "  No, oggi mi sento buono ]"; + } +} + +?> + + + + + + diff --git a/mail-users.php b/mail-users.php new file mode 100644 index 0000000..4e9421e --- /dev/null +++ b/mail-users.php @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + +Mail Users + + + + +

METHOD=POST> + Parametri di filtro: +   [ >Reset to default ] +   [ Inizia ricerca ] +   [ >Nuova email ] +

+ + + +   + + +   + + +   ordina per : + + +   max : + + + + +

+ +query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) == 0 ) { + + echo "". + "Nessun record trovato"; + } else { + + echo "". + "nr". + "login". + "gid". + "shell". + "email". + "domain". + "x"; + + + foreach($rows as $row){ + + $index = $index+1; + + if (($index % 2) == 0){ + $bgcolor = $bgcolora; + } else { + $bgcolor = $bgcolorb; + } + + echo "". + "".$index. + "". + $row['login']."". + "".$row['gid']. + "". + $row['shell']."". + "".$row['email']. + "".$row['domain']. + ""; + + if ($admin_option){ + echo "". + "burn it"; + + echo "". + "change pwd"; + + echo "". + "change shell"; + } else { + echo "-"; + } + + echo ""; + } + } +} + + + +### cambio pwd ### +if ($_REQUEST["step"] == "2"){ + + $pwd=$_REQUEST["pwd"] ?? ''; + + if (isset($_REQUEST["vapor"])) { + + if (strlen($_REQUEST["pwd"]) < "6"){ + + echo "

Errore

". + "La pwd '".$_REQUEST["pwd"]."' e' piu' corta di 6 caratteri". + "

". + "Nessuna modifica e' stata effettuata"; + + } else { + + + $sql = "update mailuser set pwd = '".crypt($pwd, '$6$')."' where login = '".$_REQUEST["login"]."'"; + $count = $dbh->exec($sql); + + + + passthru("/usr/local/bin/sudo ".$mng_user." PWD ".$_REQUEST["login"]." ".$pwd, $retval); + if ($retval != "0"){ + echo "Script to change PWD - Execution exited with status code:".$retval; + } else { + + echo "

Record felicemente modificati: ".$count. + "

Nuova pwd: ".$pwd; + } + + } + + } else { + + $stringa = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ikolp"; + $pwd=substr(str_shuffle($stringa),0,6); + + $sql = "SELECT email FROM mailuser where login = '".$_REQUEST["login"]."'"; + $result=$dbh->query($sql); + $row=$result->fetch(); + + echo "". + "Sei sicuro di voler cambiare la pwd di ".$_REQUEST["login"]." (".$row['email'].") ? ". + "".$row["email"]." ?

". + "La nuova pwd suggerita e' : ". + "  ". + "

". + "". + "". + "". + "". + "

". + "La tua risposta e' ". + "[ ". + "Si, facciamolo impazzire ! | ". + "  No, che si tenga la vecchia !! ]". + "

"; + } + +} + +### delete user ### +if ($_REQUEST["step"] == "3"){ + + if (isset($_REQUEST["vapor"])) { + + $sql = "DELETE from mailuser where login = '".$_REQUEST["login"]."'"; + $result=$dbh->exec($sql); + + passthru("/usr/local/bin/sudo ".$mng_user." DEL ".$_REQUEST["login"], $retval); + if ($retval != "0"){ + echo "Script to delete USER - Execution exited with status code:".$retval; + } else { + + echo "

DB record cancellati: ".$result."
". + "[ Sincronizza ] o aspetta 2s per la procedura automatica"; + + echo ''; + } + + + } else { + + + $sql = "SELECT email, login FROM mailuser where login = '".$_REQUEST["login"]."'"; + $result=$dbh->query($sql); + $row=$result->fetch(); + + echo "". + "Sei sicuro di voler cancellare ".$_REQUEST["login"]." (".$row['email'].") ? ". + "

". + "La tua risposta e' [ Si, vaporizziamola ! | ". + "  No, oggi mi sento buono ]"; + } +} + +#################################################################################### + +if ($_REQUEST["step"] == "5"){ + + $shell=$_REQUEST["shell"] ?? ''; + + if (isset($_REQUEST["vapor"])) { + + if ($shell == "nologin"){ + $shell="/sbin/nologin"; + } else { + $shell="/bin/sh"; + } + + $sql = "update mailuser set shell = '".$shell."' where login = '".$_REQUEST["login"]."'"; + $count = $dbh->exec($sql); + + passthru("/usr/local/bin/sudo ".$mng_user." SHL ".$_REQUEST["login"]." ".$shell, $retval); + if ($retval != "0"){ + echo "Script to change SHELL - Execution exited with status code:".$retval; + } else { + echo "

Record felicemente modificati: ".$retval; + "

Nuova shell: ".$shell; + } + + } else { + + $sql = "SELECT shell,email FROM mailuser where login = '".$_REQUEST["login"]."'"; + $result=$dbh->query($sql); + $row=$result->fetch(); + + echo "". + "Sei sicuro di voler cambiare la shell di ".$_REQUEST["login"]." (".$row['email'].") ? ". + "
Tipo di shell attualmente in uso ".$row["shell"]." ?

". + "Possibili shell : ". + "  ". + "

". + "". + "". + "". + "". + "

". + "La tua risposta e' ". + "[ ". + "Si, facciamolo impazzire ! | ". + "  No, che si tenga la vecchia !! ]". + "

"; + } + +} + + +?> + + + + + + diff --git a/pics/cut.gif b/pics/cut.gif new file mode 100644 index 0000000000000000000000000000000000000000..041c40296f96a42312d1c95a45df9ee1981667e6 GIT binary patch literal 617 zcmZ?wbhEHb6krfwIOfUl>({TKAkRyeE*ThTWM?NkI#}%7v96<|+SAk7&dy}Tilqw{ zEJ#U7(9}>laNxj>9b4C}U6zy(6cy!@ogJT;82#YEgLm)Vef{{{&(9+y*ysJb2RCot zoI0g*;)K>q7j~^(J$d%5_LAcK(vsBL>cW#J51u=BNLpG_NJzlc)KEo5ZqA$u>S~H_ z-@aYGbkd@QowH`ms;I~HuOPtVG+uc>x+ETW3>AWKc*S~mregEDicW<9QdGh4r zhZi?(nDPG2?G?+X?Aozx%cdn8)-N_UH*9EV@bIwp^0c?LwTg@JXBY}V@t>%3QEFmI zYKlU6W=V!ZNJgrHyQgmegW^vXMh1p@1|5(uK#}FZzP6#hskx=Kg`b0wk;9FdmsgX! zMMqIyPC-J$Lss5IM6`vE!;D>(-Bd`BnX65jo0Eq}Qk$Epm5GzhPF!5dM$TA}cUv=` zp^6L}ivgoB>zY4ajtk~=oY%TSekJO8~ zFe*Ekv&jkz@NgtP6ky~NaS_olP&mNA(JCjPu<+0oMotzkhmh%-4&0I~T|AaW>t`=? HV6X-N{2HiQ literal 0 HcmV?d00001 diff --git a/pics/cut.png b/pics/cut.png new file mode 100644 index 0000000000000000000000000000000000000000..65b6345fe0f79585a9e2574f48ab45b80fdb3d64 GIT binary patch literal 626 zcmV-&0*(ENP)M+FjUi;4)cPU+R>TuPSGl)p4{A=``z!m-#I52)-)YD3|W@zjVejFW3jW&*><)D zUzcU+;)O}*Pq>bK1q&fEYm>QhFVtk!YFSWN0QHi`VL( zzw`SvO~Vi@Nm3{@a!d~%4~64It0hpBPgPZtAO;3Jz|H3y91aa1BLEQ|k8GApet!UT zUo34L7zdqBd*V#|UrvtzJju|0p(O-Rlq5;u!!Qg0|0@9D^?GYH4##i|b-6!&I(hv@ zAE8Geym_sZij=BKr+K(qV?3U3%gfZc^UU;gzd&4D6LPD7;j=6a$6VwI4MD&p2W{Id zZdBgA4JNKov6w^EHGSuOKA&7@-cPenmbg2&Kg`dA|DuW#fA20hvQL-zR4SiLZm;H? zf23*qrNxI|)0yUrEXbSbOyTA&kbqT4E;P~^2h6T)r&6WG2SDJIWN96fAn2(n@zn}q z+c-^k>m)-VOxMNiOL}HTTrZfq_PYm^qHxm`A3w58Q?{YeM4~GQ%+7v!_I!xrT3p4p zEQE9e5C)EFxxAOl**^>jK}P512!G&cCg4h0FBrleA#+^HN9yoB|^y$+VE?l^E>(+w@4_>@@@!`XVpFe*xU;~Q(M4gLL z6H8K46v{J8G895GQWe}ieFGR2f3h%gF~~FMfOLTzp%Ds}n^LTuk@#6O**2tFxV9Jv>cJ rN_EPvut)(0my5zxjZf`O!Xpero9skd)RTpTdwK*pebXi@GFSru+K69D literal 0 HcmV?d00001 diff --git a/pics/edit.png b/pics/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..940c9f8050a7d5f3670476b383f503abbe4746f6 GIT binary patch literal 589 zcmV-T0O^jb~bz7{C5#yL{@$0{=@StmpJRj zXqkH+Uf4RNBa{WhLEr3`lbzhc_@uR-&YP$8UT6>3SH`bjzX9b=pFI6T%Nkkr zzb_w8EvbwO)8`Z5dGL_s+r_UpudWv~G(p$^bPU`{2OfR6v$7&C%2ZCth~eYRS1%v# zdLV7;%((l69ZR?(2*^^7m~&K`eYDJ`!6R1H*sZUf)<533f` z#7CRTDj71qnfdP4*?l){bsY+Ry?YE%hHk^ntt}ZTmLd`wjBjRq0jj=aE)d%H2^d^Q z515#lA~Zbt#c9I$>DY<}uW$=tVHL)=v%cIpyZEfRx?j5!*jH!1{zkFk#gpepo^19F zGZzw3W_&a2?Txb=FPPhew7q2Ih1mS|%QqAaAFnJ(tO?;4PzU<*)9tf|u2|>=w&_ap z>B1bm;>RC^hN*SI83kSU9z4(%>iP5P=K6D{5kCQhx( z1ljQW@1KoJCoyvHKlvxiFRi&__pv`ezcVm1!qXrN6VvB!KllZprZ9d5dmrvtCPbuwICu_bs00000NkvXXu0mjfKfM%q literal 0 HcmV?d00001 diff --git a/pics/fire16.png b/pics/fire16.png new file mode 100644 index 0000000000000000000000000000000000000000..5da7bae52e8aec3cff0f43e6c31eaab2aa6c9b25 GIT binary patch literal 776 zcmV+j1NZ!iP)6o%jPeczqy zb!NPJM;*+$bmV}wC@vLSIaLR?~e3bq6B+30oVfds303wJrwK(|p8%mm&daWy#xuha_ z5>6h!DJu8KF83%QJuHdBdN_$XPX-61ZQCdf<#zV%$Ax4X1w#{XH>^T&GzO9pKsbM5 zl>xCDpnnuX%itwZXqndDt>{_15ytvfl)g*i(7yBdkO+cB4KSDDdf?GC@HK_F);gt# zc=L)zv(Bh8(YBAO>>Am6f84#|I^wvf{JW`4meF@B#h#B*rBs5VP^=2P)$B9!ql{bm#=de zygtr{kDlX^J5MI_p6&*48Gs7_vr|d{%|z6$lv=NpiUJT?>wG?+k2CXK00YeY41hQD zJhOMSEDHb(DP=@TSx!U&0Iu)*iR$X=WHcJhkByD}ahIRRECZOtNaK6}00001BKG6 z0*Q-}NN9!IBu(VHiJi{a%y@2|nU4)|iNe{xkIp%-;NO|8R?7=dJ^Rj~Lw5v!I~&2~ z&9%v{>yK?vA!n6sz3(nAUOIcxn|bav?ee>CbemV|0Qxo%g<)Tla-rk2%LUV5Zf=f8 z9)5_YPrpay@GQpAz9)0XUOw$HZ#2c5?{5g!e^y%7y9@Yr2T9`G}~K@=PT&bvv^L8T>uCS zYm|}VG?qERwT6$Q8DvzMd~gEm`Y$MRoYj?8Jj5U+Z^uDuIqYbZW;@|lXyNJyxO#Pk zxbIWiJA;w5fEzrskrDTYf!BT6Z; zqlJmR0A1Gs3{BS$7>04DuIc*#nIwHDj^pJl%T|?AZjvN}%s<9w VSk>mY$Swc?002ovPDHLkV1m+*ka++A literal 0 HcmV?d00001 diff --git a/pics/notused/trash24.png b/pics/notused/trash24.png new file mode 100644 index 0000000000000000000000000000000000000000..26ce9e47b743c7ef9eab599d49f2f23f59870e2d GIT binary patch literal 1502 zcmV<41tI#0P)JPs05)000GjNkl~52(nN_Kx7f5NU&$af)z{t5LWEiumP+nj4~23ksJ~W8$1wC zUES`v-QCsIRqxds@4&)}Xydk&Bi+qee82mB_vl=~zB+gAe5F!rfB)nwXWnQunvqud zsK`d;?(Wtx;dnEp7GW&LFithqWw9wSx01al^NaWYwQG-l=chs!-Jo~(jGe}bSYge;vG0zAJ;^YH7m z4}XRE}RKg~O>*I|d0XL+6c#ei67*joZk3YlY8OM*#v9P#+GG7EBKuV8XPBVxW ziBrWO^GLlm$SU1#msYzG!Ff(P4Z!Z>oqZcjYJE)N)3egA`v}xVT4a=YUC!R^jd_0C60T@VnC%DP_H%- zj*GDwwWg*X2E@?l3tuMV6&R(GX({)))fc16|aT z(I`xkL>w5ARcSLFKA9+sRA`k`S}@i@I2EMMu{LLR_5{XSgp`C~2mQmH?E#RD9ScRGCi%~we>#m9I4NbXG`D=i!gS_bSzDM{J|=};)e?#?<SX;{IZ!W!fiagH~M-I>O=Eb)-fA1c*?%wC_gL}*`u8@=hD}9W5`bPvFoH%-f zQ9OJ@;i=00FHS)Y5FLFksglHI{jmGmlv@t}( zh$xCl(}XABnym?{)iIQoBuPn@ zmnfxCS`){S?e}|wyeM`7doW%fA`)_x5a>rj(^ZYxBQj3`%R1Rw$(? z%A7bJ+D||Jd-m}Dooi*0-`Ed$Ca^FJMNyQkAPC<7>e)Ab@~um6&&?e>*{s!@p5wSe z8zb^OBN>fsG#s$CwV}H64@P%x-PqjRSp86I^=sgsF{V5a@Oe)NQSm(gH9zn#HX386 zXJ(EZ4{P<7lrqp-i!4ja;czeBda|*aXW4_YEN^J7{t5H|^?zIEfEDYy0Md2cKsru6 z2!aXMaT`*K3J7V8DYaH{Q53sMsiD?7vDTJKspqu*3%E(@Y-PzFZvX%Q07*qoM6N<$ Eg5-_doB#j- literal 0 HcmV?d00001 diff --git a/pics/pwd.gif b/pics/pwd.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4948129e2190a81b6a79de3521c7fd6a3606a34 GIT binary patch literal 267 zcmZ?wbhEHb6krfwaA9Cj{K>+}00cT90wlKN|Ns9VK724RFnIa$WnyBYhK9z)ix&$D z3MNgO)X~v#;>3xJjEs#NH!fPVXy?wI6%`e0*RE}DZVn0xx_$e$x3~9$2M+`U1QZk$ z=FFKB6BA=>Y|O#I0W@1mN(y8J0|RS^f?ad9E{u_Qu$1vq zfx#PI8Hrp5H%1;-P7YatN^>(#F~K4aWuYK5-T*;iW)@{04wl7BSh!g@_>>t%x!BgN OThAuSsIg6v!5RQUyIYa~ literal 0 HcmV?d00001 diff --git a/pics/pwd.png b/pics/pwd.png new file mode 100644 index 0000000000000000000000000000000000000000..d78f1f88a49894f1f5d22d0facb86e33c0f945d3 GIT binary patch literal 494 zcmV_h|+RK&tR(9#dk!rDTAz(TMSLYwl&+A{AV*PN(y!L kUfx{%<5>$mp?)j*0++yix1i`<761SM07*qoM6N<$f)mTvwg3PC literal 0 HcmV?d00001 diff --git a/radius-adduser.php b/radius-adduser.php new file mode 100644 index 0000000..b261aa6 --- /dev/null +++ b/radius-adduser.php @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + +Radius + +"; + + if ($_REQUEST["ut"] == "whole"){ + + $body .= ""; + + $body .= "nome : Es. utente1". + "vp : Es. 10". + "vci: Es. 234". + "suffix: Es. po"; + } + + if ($_REQUEST["ut"] == "ull" ){ + + $body .= ""; + + $body .= "ident ull : ". + "ident alfanum : Es. ute". + "sito ull ". + "progres.cli: Es. 003"; + } + + $body .= "ip : Es. 83.149.CLASSE.15 con CLASSE = 144-153". + "netmask :". + "vendor : ". + "tipo qos:". + "". + "
". + "". + "". + "". + ""; + + echo $body; +} + +if ($_REQUEST["step"] == "2"){ + + $errore=false; + + if ($_REQUEST["ut"] == "ull" ) { + + $uprefix=$_REQUEST["uprefix"]; + $uname=$_REQUEST["uname"]; + $usitoull=$_REQUEST["usitoull"]; + $umalk=$_REQUEST["umalk"]; + $uprogrescli=$_REQUEST["uprogrescli"]; + + if (strlen($uname) <> 3) { + $errore .= "Lunghezza id utente ull errata

"; + } + + if (strlen($uprogrescli) <> 3) { + $errore .= "Numero progressivo cliente errato

"; + } + + $login=$uprefix.$uname.$umalk.$usitoull.$uprogrescli; + + } else { + + $name=$_REQUEST["name"]; + $vp=$_REQUEST["vp"]; + $vci=$_REQUEST["vci"]; + $sfx=$_REQUEST["sfx"]; + + if (strlen($name) <= 2) { + $errore .= "Lunghezza login errata

"; + } + + if ($vp == "") { + $errore .= "Campo vp vuoto

"; + } + + if ($vci == "") { + $errore .= "Campo vci vuoto

"; + } + + if ($sfx == "") { + $errore .= "Campo suffisso vuoto

"; + } + + $login = $vp.$name.$vci.$sfx; + } + + $netmask=$_REQUEST["netmask"]; + $ip=$_REQUEST["ip"]; + $vendor=$_REQUEST["vendor"]; + $qos=$_REQUEST["qos"]; + + $ipzone=substr($ip,0,10); + + if ($ipzone != "83.149.140" && $ipzone != "83.149.141" && $ipzone != "83.149.142" && $ipzone != "83.149.143" && $ipzone != "83.149.144" && $ipzone != "83.149.145" && $ipzone != "83.149.146" && $ipzone != "83.149.147" && $ipzone != "83.149.150" && $ipzone != "83.149.151" && $ipzone != "83.149.152" && $ipzone != "83.149.153") { + $errore .= "Campo ip errato

"; + } + + $dbhandle = sqlite_open('consiag.db'); + + $query = sqlite_query($dbhandle, "SELECT count(*) as tot from RADIUSUSER where login = '".$login."' or ip = '".$ip."'"); + if (sqlite_fetch_single($query) != 0){ + $errore .= "Ip o Login duplicato : ".sqlite_fetch_single($query); + } + + if ($errore) { + + echo "". + "
". + "Errore

". + "

$errore". + "

Correzione". + "

"; + exit; + + } else { + + sqlite_query($dbhandle, "INSERT INTO RADIUSUSER (ip,netmask,login,pwd,vendor,opt1) VALUES ('".$ip."','".$netmask."','".$login."','econsiag','".$vendor."','".$qos."')", $sqlerror); + + echo "". + "". + "
". + "Operazione terminata correttamente

". + "

Login:$login". + "
IP:$ip". + "
netmask:$netmask". + "
vendor:$vendor". + "
qos:$qos". + "
Rows modified:".sqlite_changes($dbhandle)."". + "
"; + } +} + +?> + + + diff --git a/radius-log.php b/radius-log.php new file mode 100644 index 0000000..41c6bd3 --- /dev/null +++ b/radius-log.php @@ -0,0 +1,101 @@ + + + + +)6XB)}{dX+yEE z9UBs1AJ(b3GgP4+#T663U!YQ>3o_AQjg?rnHRKIB@?m9mWTz~2Sb@F|vlry#G?CVA z8OC439B1wKx?8@p!`%3jZTm>{6XZ|Po9jaRKdwFPEI3*ezKbCJTqNeZ$hk)EuAoJusY_SmLr3B3z&haY_Io$L(=V=3IGpY;+j1^$pv;f8 zjq3R=O)IS;E0_D{s@A4Fc78WJ*!!z(MobD0|GJGmlI>KoK!w77%R_-Ki`Z~Jv>Vh_ z?`RpD5TJ;@=etZ?Ub3EBoRCLUYY-E2oke6T3pQ+q)bl^DeH%{Hydu#Dbg?dNZ(=F1yZ5RCHCHn0E`>_LX#Xlyxi1kC^z7JiRqoJDkdMI4Nj7DZLw4se*aoO_nhmjfl1v7%o>Su z7oTFL)txH8sM&Fwd2F%ig z4YT;2khek|D1p>UqsSxO4xH|}${GU%BNXYMKP@y<$T`Y0w2qiO5ksgez8ya2&dOT?H>b0}=H;u-FRCENay? z6RNfpi)fPExK2Q_An*rkOByDFIfb88XDPmvrRGg_TbAo@=JqaGEAGy7yioR>1_774 MinemOqUDSK0ryhvu>b%7 literal 0 HcmV?d00001 diff --git a/rrdtools/img/temp-hd.png b/rrdtools/img/temp-hd.png new file mode 100644 index 0000000000000000000000000000000000000000..611b22b18df9d2e1db605e2f833264a280ef1b0f GIT binary patch literal 13329 zcmb7rbwCt<*Dr{IN=Zpb$`XozNJt|hT~Zraj_(CIInn1iF3;No|KX==^alfj9z*tpxVkImx~E4ZSxY5nA8XwQ zsX@%HE_w!)FSqYw4^lo3?4y_#Hw3jl(uymx$8QIz6#vi?c)H*;EW527rCs4pvx@_thZ0gl6KDFE%OslRt zTRHGFIIVJb(LB&9F~v8+!rsC}VSq72G3b6r5eo12N(|yibw>3Wa*pBx=X?koaAF$d zWlow1#XwdK=*!Tj{$R}N;>?`Z^Z9 zT_}HH!wlBNQ|Qw~F^FN=GyQc{e&84- zi^y^rV`ZK`--O6z1wb9g@;HJ;` z!#}A&1jJCm&!rNk;#2aRwJ$u6b{{l0W*(ra>KB@gndj4-L$hxk zI$b!o>daYx@ry5tUw2vJGRp1| zke}fFF|!s^1f=dL_x?*y%*F@Ps*5-?DDc9ewVPgB$y-rTcV87HQK%8I7~%_KLR}Md z%pd<==I#^D_dK*JBC{)Hbqic}i^@OhAK)IkdgF*1&HCZMpCNjDDH<&a^)ENX*mbk^ zAn=sA&@66pa`F{Cb`d)7lqf(VHXo^WySSr$QIsp7YU7dBSh3`~$I)`ua&M}{?#T{} zd_(n}F#kOKR5*UoxXZl`AGUXNf3|WlX|+#u<3x7%Da^lS66Pz<_r8y<4B5hOt6M%s zpq%BmRuF9D5G4f}0KMBE$mibiIM`5}U*5HZ)JECV9h&ZW@T~syI(0|T&)2wl>FAFj zKixQI?y0xj@v}4a2AtB)4pim5t}R)m&_8h=Z&Q_nbE^c;3l-Gv-X6}xwCHtydJtfH z%&A=}Gc;}2Mk6xbmY8f3Jutn-wmnAAHrj5(!fZnl|4wTYD_{{D8y~xWD(Dll_yA#- zVB#W6(cvo>4-cVJWQceEsCOy#j<6u?g$vvonloK|DC~zrm>J7$mg^9+Zsn%uvY6=7 ze~Tp{Wol@u)LbpV%WhlC-yYOatOXJG!|pq%JE)}v9s;p_ZrV?x>f)mQ9rQ{G|?0vX7Y1m6UH z0)y~Rm?Yhwkp}{qu{8qo#RYUR0e%x`d)^)VBtr3_xv88GfwM2$g!2pmK&z`C3V>ly z7`E&)Qwpz7)6MtZrbs>eMD(%@`nJu z5;NT&LOf*0*9kMFN~=|GW?Aq=g&oh^-*?I$ejj_FpBSjwSGDyE*Zc&9v^bQW+RS|l zx7UaLa$^o2TG>%wU;0 zYFW88c~e%MZX&oNAmH9>d@GEsO)Ti|)J8RwTf+wn9QA(&*=FsmJHg$!1xQ9{0>WM8 z<#E@?N~E142Zo1VeRmnM6zD50DH*u^YL`FK#Lw+Kj<-R?g^M!KppkZF^n>TMeIF4k zV+n~cS2eW=Dh%FRtHnxbdwkC-l;{@6A**_pV=Je!{deAeOu;fPvt3r@yoQ@WSLco@ zH+#hNwt?2IKeR#hIrduL>wVTX!dgUQ`I16SWu=zq{jkQFSbkW8z-Dg9hu@l2)U4Bq zd_iYn$A$Kl)|wl~h4aA=pkmi48I~IOX~1h-oWc^z{t()_bxQeLltt2Bc$e#j;d?yx z-&*ikOi!h=8koDsWOwGZJyGdEX6FLny|lD{NA*fs!n=-SFNN(k^4oRZ48L!RC+5}z?~|r0P{r?W4Z4?8P@pK1 z*rQxzJ5{3-iz8N3!Mj7t`_TlV5<~}uy=b_N1 zl@X?U^!=obUgJe4Iqvj+e!xe(P^qa*;@5J&eME|l2)h}}i|DY&B zT}59%JPZ-f{Sw7_w{BgFmu}5!%pin`mX-GAHa#9NjC8UB!Uai~qsuOd*&7 z(lQCr(g|F~pQ)}3Y$5o(&V_Bf!#yweGuNY?_&+>E^z2^`)PdTNY3=hr=<{o41obo+ zF(=g{3g*N}{5R=Lsobt#Ue`d|7ZbI`WCzr3C;+{3h--|q!#Q>`9c6H zEdEGv`M6PDnaZt@VgG(Y0}(Ksn*(jN8h=?}+nY=XAJ{8B!~s|qIi+DgULdPLMF+9q zM|#HVG!(`o^z*;OwCUu;z)QIY3 zxbT09YU~H(XMIO6k7n}xZ9Q5gfp`i#czg>8u!=PX@t%{(5D9;RndM!J#%5bY-%JHq zpgV=td%x%d9PK;bK7Yg;p}*k)l1y=>USsh8gx+Ocqze0H%sOhOLQ~&OQY6KF>rdnB zC$`zKC@ezZXNw6A!Q-agaT-ggOvU)@+FCu&$#3;une{fNA50g-5iLIQaq`@(7CC+| z#K0y%tk;0vR$xCEWqfe0W!8{T;1LMe>zP2p2zl_1kn>s!8QZJgqrKJT24AcjO5F2& zqydCfJYSqQCUVLLl*MX$XCA0!_9h58sJrd2jqy0G4E_=&!ArymAjje`=jcw!&LAK@ z-TDqV9x^<1hAQ1KB>g67h@Z$@5gG(Ovx)MA$Ygd|qB+KQC{6q}&LJjuM zj0{P93tiLMvhwn~`^&~%q#%8~iu6hzzaLS8GP_Nhp8!A@F)W+>_FXeb7Kh;w{y5A*BQB8TFI1Ev)hfChN z5n`El@ae*VLi|ER7CxD=o^A~_K}C!&P^PW^Dr)@%K0aL_xd)RO;ROs#@z|%Tx_TK+ zN`0|#?qVbeyFKYn6w>@&T~(ExmX=lo!)7%_wB#)S#(-E^{`*#LwfMl2|N4447T{~G zz3WD^kvyw_ZM}Emr+Wd0B+n=v4DwRd!)jZ-3oR?l$r@-2y62xYz{u#ZBu=CbZ_%?{SUwuibzeje};JdQ}Jy>8~t}WLsUH)PnaAH zDe3X08mE&~pBNIF5Nx94;Iy*s(EeF{FtX*>q)7=oz!+%3FXtqnC+9DJ!!!w}_st1a z=h?%=?q6a)?LO-sg@LdqJjGWgX11CE1-qm;51k zK&VImm!TeZm$P#2l?X}w@kaG>jB&6E#KCi`5ocw%s*$zjE8zH`bjmoSR7H!J|%-1p6`Ofv?Th z*Y2efa3c{K4*k>sZYQsH@a5>08)VaU4^dDM5b;U-wn5g&>uw1$`G=q#Uban>dF zKu4^L^O6E~)){IG^s1v=+XsX;Dw^Dh;QEgkf~HpUZ_@AU=yLn8zAjXxH!`7wH=ZCTKSET9hK9`%`-AhUGX&OkW4m6jcPZ+ zp>R#Hu7^kUQQ#N~Ig2DKc_W-njh%C!{?eWRy(vKH{so;h5Cax@rJHvI8hJZuRVT`M z4ivY6{L{As6N9KKE~p%8L{yxKB&adVdbK=ySTj5ix2X>DI$bq5=r!($e86MYL#+X0 z>rzYSM!$kHNPO-EyfM#of`nNiWklaY(WwfkxgWEc zp;Lf%W3Rh!v$cdhST9bT$a?{yf8|5DmZ1;t(5YBq$8Cdqx}f#d?XCo_{-V`OYBM^(>x8H+fCF2UMk0Pi;Z(8}q`H4H}R zO`4`&k^jy8qZhef|8MTstqFhSDG|mGt2lgm9sBFR+39f}*ulYJ##!uMNJt50m3KGQ zc=Rz1qIw`R2lHDHDRjL{*c-=l zXQ7+k&e$>P{W~ByQy!}ab<6$rjufMin(9W{mLgotuXh~3d<|ix)YJ*?sR6zXiioYS zK_za2vv7!pkDuBV#M=hOx^lgXSO8taO%IdSx!|lgYeYfbx9YdioZ=Y7&_qU8ccNx~ zoGV+?Phzs{8tTg9*cm;57r1Q(qhm;wxBxC9Cw$c+Y1Qk2ZL*`J`@d%&T=F)HZYO%= z#O9((FA&>}EdPkF`~ZhLQ(jQSE#M(r!Kk@_O+iu|eXUM$ukT_8|sK|G@TW9LaGP~Ow9>(^9lC}+w0;t+FU z>-Ou$iL1z8!O|=fLldt|BdshED=m)4ZzBfurvo_;`BGItBLW4eDMQb=%=Rp ze1RNA&5is4VeXLSkGMcr74!zmTu%@E%j5o)f17A)JJGp&!VV6#)m%;78tHVMBspt{ zE>Ii-c^yo;ka$;Gp(VOT9J*|s)ikM~;-qG0#LHFZ^>ImV)2^54&5ie<$m2!3^D zfq6*G`b6cxCCE3e@Ak7Tf|!^Iro{lVa`UpT^AY*M#Xh5nHmyT4z9mwYV>$3NUWh|T)* zx}8{i!)O1Ppc|a!lzO&+Y>wS2N01UW<$Hr{8mu2@|2e~dKrl<_iY#yh@>5|< zv$X-|tfT=2Dg2g&-a($hshr-+m_?J*aX5TPvkS#$h6>c;O5taj=|$%~mE3}A(BIfn z`7E+shwVXX%yIqE^IirHQH2d;`zj<#av-}aP!@c&yDT2+RLZEkpmX$e;yurm1EUe{gJ_bS`N^Vv0lvceDP)9ua7 zSlD$dif{s;rKO}Bq(w+=9UXCml%pJfDd6TWDRNs)nf}ISZ;|xWq+!UL(N8{-HwBwp z{7G3>vij1@)xDZRQGi-4`E<%P?fxPla^&R54so}0V^mS!kcj3Y;l#G?Pk3SI%d`DX z{z4uA+z83}f4I@k7srR9BnCg<+|UDvERWUbW65tY(POJI_+WqHlX)cj&UZFVZCOA* z0RW9kGzncaloa%A8kBtAXV;Sh^b^JI=c6)q@WP3FvHx8gulz9%arfOn|RZI1W3H|~IimDcCYwML|$Fq+Qlax4V;+UwlfqIWsuFNU=3Nbr? z9T@?3r0Z%&K+&45faRgxVfjlf4G>eZ28d}E1Q?%2>ky;=ikxhXlU~WSl+0q};{TGO)dEAeMwTHKBWp!~a(*JoO8;W@D70Nz@17}uBkjc}8aC9|HyUyar z@tCWoJ{k&h|BdS?XYW zaG*`n2XuS<&*u%6-fyt~u=l?4$f-K{Jb^$A`J&R4=@|EkoCO;j8ZJwIaBsfTO3qq| ztyq_J)JYUoiR!19O`s`Prdus%IiRhvOfEZ1j{ugb_3H2xj8YN~duRi5pL;tuwa7>% z$ir!j+5$iJnqz!OuVHw`?d>{U7j7)?_(spwdt;NX(rJAeHOsd8)mK*I^znF!eom+1 z#Awtv#kq;9gen3*oPn8%hOD#K(Gyj-96Q-xxJ<=Dju*X0=r#CRp-R^Yd;A?bY3OOkjjJeT#~} z$UVN8`d+Y9Tcn7>v{5ajUR3!@RsurUrTe5~Yw=tZXc`b7@>0=dQlqFWPqDO)zNuHhU7>PY z3>%MiH|M=o&mzD+G$Q!DZ!+cP7jU>M-0k3o39#5EOl;@#*n?Cy*sLqF4%{iaR&G+i zemeQW@o?VJwe#+eTO`{b7vJB_!|VLHwv>1NbG(XuS^rIe3r+oj<C=bnwVwA2^bUAx`%cZq564t?y_JtB3XYBqmgpE^>F3nos*dyZaNMQ( zgo8;+x9ht?i?Ni*>&Y+r6Az+rv-rmXg!6a6qf{CMag; z>2Zw1ay@pE-1#QTSRUbbz&=*TPo!^m%5@s(X}MWCk^3#VUM5j()m;8uxf8?vJPDGs z(`MATDC&Beu?vNHz8d=oBN}2UJe?NvAUGZIQCkx0p;lPc6zfYXh$3V03sJGBXq%O@ z<2i2KH`FZ)7TTtDDAbEnUU=ML>AF!88^#iSJhk04u>WqV9~A56j9sFuD0-oVj_U0(zQe#YY*z9x^@6E}K(| zoza|GG(yh3RZgo*KqIzXpF&*`5%=*++I z<}W-s3#kJQ4uL*|Xg3NYK<6f}Tu~XTU$Z#E&d;dQv(E3E?J*Bdj=ks8gTHEX6K%$9 z0B2I&`ar2aC;;dYegUc~DN~Et`p;%F{H`L5|`JfHRbDHkIfJ6~j_ zOIW9f4?ynm1sx2X=b5hIa*K7H{5WH}`M5-Q^B#huk4J6}&@GR! z9x3z}RJznSnPn-&K1a8p=Eq9R1_pD~aF2JnOm71t3T^nG=l2f@o&YaKo!+rGIq_HK zCiI95WCMG@{GVuiS+yKP;S?nhJV=xXSAORAn&L7!q5MJt%{vvX1Bo`8(IiW1^2wOS8 z0ACi2wwg!gRZP4Gc};sB^nIh`mJ@_0=;(kqr)qP9%@D%eP~V?o2O_(kl|yztiG%r5 zm~*j46MQB;V?U2)$5;M#Bhq%FoBo?>oTyI3)zf3)&Qy%Dm9Uz5;+bLsoqb7}H7oJr zbS;Z=l0uDo;+R%peEhK>!3cU}L0Ve6-D~G{k1?~p`@B_8p{`p%o-s3B^a*J1N?NcT z#S*i9G0Sm%8c!StsLFbpW52o%mEXX<+uP`eGqjzjQi!kz8hF!no??O(>YM|EDcHk5#l76PC-U9y)#nRzSVboGFc zRcb#kSGM*Ll3Zuh^!Zwrxs4@1@l&CNh&F|q$hkCMD>nJ-cV)2BiT2np%WP4_{x1kJ zO@d471HKRrN^%s~0etrO4s`4;5FH`+@H*FbXx@V1SpqWOSF0<<{w3DZD1(u^))$*U zF_&H;EF*jn|D2RQ)YZH<7ORAfljwC!fH5=e9_N4aEP6ZKRH<9#cTLcfDmITFL18YT zNbBSUdX2)(g|okXmC-auVPwky;BosHfaA#1@^j-fSJXh%j?0y~SrJDxlYhkShQAbwWnk*o$8y$h~7gBwJx4t$>!>BbZ#YI zstp@oLbhhHxB=@7uUNDS69T%q{w*!ZkUg4RPk4zax|=x@AvJh_=pYs)y3pkktS`P* zlQ(|P$zpn+KB)gIEjo&tXp8)Vx+IWn=!RGpB^`PyN`{)SJfQ0b6Sg2+p-GCMQ1Gf6 z=2{~z&+7B*L**xV9C_Dx-h-<@M%`Nk5r83Q~5VVlG`|Ru90Cb<$d?I z)!tu>Qsryu;yj5>W+%{fN(H))w78i}!$)QI0C+YETh%lm*{ zNJvN{x09pyF$pJrRfVtiX2i`$UCmr1BWLMqS3(rfg+&s1fnz{tX^nnBG1^|E8S3ib zz`Z_Mtx3cWYj!iWA?Ba9F#B-6Pvg=HwWNtF0gK~pG?JHT94DiNbpZ-la_RxvEIo{d0vkB>4Nmy-{Tn#GMUUrR*HmPOTDSITont+whmTPHI-|s{a}4f z>WY=TJ~C?yIwAC{0(#g=PF8=Z`M^>aH!K~P;ki2(;};$4a-+i1+Cx*Mlal|v;S5;2 z5d8=n|I&Rdyq?{kTxk0TW9uv-jOZuL;|pa-9vLwbyH_Ug=!^bUK6oI(58x*SjDMxPdK* zFkZNDRx)Q4dU#;(`Avz4uC~oZ9M~ROEFapNU4zsg9czK>HY*otkA9KYJsZeU&H@DZ z=vm^kT79y&hQAG$$#c3#K?T~B( zZ3or>?j7)vD|!Q+gwl=LaL~9)d~$QN2_lR32scE zg$uhbW|^LC?qZ@LQuEKn1QLd5s0tlMfZ5>tij|E-&B-F6HT1Ai%zw<5K3Tz{M}DK~ zsUeo2)m*roU2*{iSE)h4Z11neV6%as;kMw{bvo$Dvl*pv_6MRy0a)Cx+3p5`E>Kqk#2s9Eetes5@gxU zw)TZGNGyFMQDQ~Cj;ngcXPU6(yDj=h8KLmURYdxtJRB^> zV-E~ae%b-3?>k^};YQc$r}*I=PVYn9Nx%~vf%)LOj{V0LiJt>Wj$6`YBS=LPGUr)j zk-<&oK(wtG-`gAJGBvj!8YOF1r1Jv{NFoaq_m3``bDJ|qKHVPObP3RHcQHbNW zyPs&^@!-=@RMg$^60?wp4&&qF+N05#BvmpK8Did}e}Fl{to?mwgz|NZNfg!%X&NU| zyN>w6MaMr4zDy<#1{sHdY!`LMwD$dg`}vZz*pKP6eP}Z|NoN$h+G&D_hjV)tiF6Q^ zq;36a`S?LIiE?k2=w1%(zU|wDm^N+lht?;@G%D6M*ePqjpc5-jTRY|+Drvo-%V!f`Hm`%bdfomRSzvWFDkWF8Taq5%*~OTcT{B894J)OFs?K z?1dauQzn9M5_+Q~0+K6EzHvIc4vPYVgZ*vqx(1qMlbhx{-NpK?!ZFvP6sw0mHPeB& z#CiSxXywR8F037=M<_kS+t@pLSDO>R{D29*!#qu%=)T{j0 z=x!!Q0#v`k&KqhCmjb3&AL=;`X#j#pbe<3?Rg;cQ$cm# zSyiGs6|vG9IoPPF4wkdb!Xai%-6OOqd^8NL(`b;teNRn^l%*Cns4~LP&5YS#GX~Ys zlSwf9BIL564pr&)f2+%FceZs3jGPVmwD@@ebUoKE+S!Ucpn7*vJO;jPr3?E|_K3L@ z=#cL9#+xM_#aQ%DR=bdo@8qwMB%@xW>T*t0&;h_JcKQcLjCJW(iIi7w@BuIi?XWw~ z=^gu-kWL>J`*C&F6cH4t7I~+;xD$pl3*7WRKXx25iSGL$`Smsh_h)lN^R^qe)1Z?~ zi86MP5uf#Ia^myWr*)}G*>#5t@k3UMLLq00C&1t|$Dv|Edw}=x?DVz6TVvhvPowd4 zt7;wH*M7DUpL66ufwCccr)sx;yMryjmSN}7a+cVsc|b6Likg0fUSDKaSA^)d3pCDX zl70#Rb3#il^~ZWMHG98;j-9)CM?g8qjp)I;t78DUDTk2Ghn8rq`rpAXq)9Tb3=Nwxp%}BrG5L5D(9~|Oa5yT&u(rqy#r|@Wx zID}lcU_>WAUAWxbC^}J2=5T2|;)>+VWfQK^mE&1fbE5?#7xPF#>)me4# zj^n-U?ZpInB|j7=Xlk;)>kfoas(}!m+xjlQ7`JsWc=P_9(dx7PLfn9zmB)*J6CNeySPBLSJa~|zXJ<621$#&f0NuZKEB+?d&KJ{vnrO-gk1~6 zc4DxropR_e8z?jW{2ak?Dxo8!H{05ouuYs)rJKjYW|?Ivyy8o8>=-qy1TE-;ASK3+ zZ(iqv)OW8wM-=j=c575wS(^F(y)_Z*TYV-UV1zglSKtN+i_+SFmX6S5S*9TN?h)Zq zk@#kbxSq^J8FQ)Sy5o9GYG{T0dGD}NGPhZ<_AhnF$4t9?$+!%_t^sO;S!fqu`RVLF zL3LWT#gdSA5JqB^)U^P-GCZ!=>hZ|<@}72yz^Y}|!8%+M7|AsF8voenxuV&umbOrB z5`S!ZH$mQXUfr3f;~RF)67|MlA|8KPU~m_g-aoO-zS#TdXJSxKcA Jh0hH?{4b4>mXiPg literal 0 HcmV?d00001 diff --git a/rrdtools/rrd-generate.sh b/rrdtools/rrd-generate.sh new file mode 100755 index 0000000..9f22369 --- /dev/null +++ b/rrdtools/rrd-generate.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +MYDIR=`dirname $0` + +cd ${MYDIR} + +for PRG in `ls scripts/*.sh`; { + + sh ${PRG} && echo $PRG + +} diff --git a/rrdtools/rrdtool.conf b/rrdtools/rrdtool.conf new file mode 100644 index 0000000..0df854b --- /dev/null +++ b/rrdtools/rrdtool.conf @@ -0,0 +1,10 @@ +# Simple config file + +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:./ +BASEDIR="/home/web/www.gimbo.org/www/rrdtools" + +SCRIPTDIR=${BASEDIR}/scripts +IMGDIR=${BASEDIR}/img +DBASEDIR=${BASEDIR}/dbase +RRD="/usr/local/bin/rrdtool" +SNMPGET="/usr/local/bin/bsnmpget -s public@localhost -o quiet" diff --git a/rrdtools/scripts/bw-bge0.sh b/rrdtools/scripts/bw-bge0.sh new file mode 100755 index 0000000..a69d050 --- /dev/null +++ b/rrdtools/scripts/bw-bge0.sh @@ -0,0 +1,54 @@ +#!/bin/sh -x + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="bw-bge0" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:bge0_in:COUNTER:600:U:U \ + DS:bge0_out:COUNTER:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`${SNMPGET} "ifInOctets[1]"`:`${SNMPGET} "ifOutOctets[1]"` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Bandwith" \ + --font DEFAULT:7 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="bytes/sec" \ + DEF:byte_in="${DBASE}":bge0_in:AVERAGE \ + DEF:byte_out="${DBASE}":bge0_out:AVERAGE \ + AREA:byte_in#00CF00:"IN\t" GPRINT:byte_in:LAST:"Last\:%8.2lf %s" GPRINT:byte_in:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_in:MAX:"Max\:%8.2lf %s\n" \ + LINE1:byte_out#FF0000:"OUT\t" GPRINT:byte_out:LAST:"Last\:%8.2lf %s" GPRINT:byte_out:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_out:MAX:"Max\:%8.2lf %s\n" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:byte_in="${DBASE}":bge0_in:AVERAGE \ + DEF:byte_out="${DBASE}":bge0_out:AVERAGE \ + AREA:byte_in#00CF00: \ + LINE1:byte_out#FF0000: + + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/scripts/conn-server.sh b/rrdtools/scripts/conn-server.sh new file mode 100755 index 0000000..0a52ce4 --- /dev/null +++ b/rrdtools/scripts/conn-server.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="conn-server" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:conn_tot:GAUGE:600:U:U \ + DS:conn_udp:GAUGE:600:U:U \ + DS:conn_tcp:GAUGE:600:U:U \ + DS:conn_pop:GAUGE:600:U:U \ + DS:conn_www:GAUGE:600:U:U \ + DS:conn_mai:GAUGE:600:U:U \ + DS:conn_pcs:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + + +TOTSESS=`netstat -an | grep -ce '^.*p4'` +UDPSESS=`netstat -an | grep -ce '^udp4'` +TCPSESS=`netstat -an | grep -ce '^tcp4'` +POPSESS=`netstat -an | grep -ce '83.149.156.244.110 '` +WWWSESS=`netstat -an | grep -ce '83.149.156.244.80'` +MAISESS=`netstat -an | grep -ce '83.149.156.244.25'` +PCSSESS=`netstat -an | grep -ce '83.149.156.244.2110'` + + +${RRD} update ${DBASE} N:${TOTSESS}:${UDPSESS}:${TCPSESS}:${POPSESS}:${WWWSESS}:${MAISESS}:${PCSSESS} + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Connections" \ + --font DEFAULT:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="Connections" \ + DEF:tot="${DBASE}":conn_tot:AVERAGE \ + DEF:udp="${DBASE}":conn_udp:AVERAGE \ + DEF:tcp="${DBASE}":conn_tcp:AVERAGE \ + DEF:pop="${DBASE}":conn_pop:AVERAGE \ + DEF:www="${DBASE}":conn_www:AVERAGE \ + DEF:mai="${DBASE}":conn_mai:AVERAGE \ + DEF:pcs="${DBASE}":conn_pcs:AVERAGE \ + AREA:tot#00CF00:"TOT\t\t" GPRINT:tot:LAST:"Last\:%4.0lf %s\t" GPRINT:tot:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:tot:MAX:"Max\:%4.0lf %s\n" \ + LINE1:udp#FF0000:"UDP\t\t" GPRINT:udp:LAST:"Last\:%4.0lf %s\t" GPRINT:udp:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:udp:MAX:"Max\:%4.0lf %s\n" \ + LINE1:tcp#002A97:"TCP\t\t" GPRINT:tcp:LAST:"Last\:%4.0lf %s\t" GPRINT:tcp:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:tcp:MAX:"Max\:%4.0lf %s\n" \ + LINE1:pop#FF00FF:"pop3\t\t" GPRINT:pop:LAST:"Last\:%4.0lf %s\t" GPRINT:pop:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:pop:MAX:"Max\:%4.0lf %s\n" \ + LINE1:www#009999:"www\t\t" GPRINT:www:LAST:"Last\:%4.0lf %s\t" GPRINT:www:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:www:MAX:"Max\:%4.0lf %s\n" \ + LINE1:mai#DDDDDD:"smtp\t\t" GPRINT:mai:LAST:"Last\:%4.0lf %s\t" GPRINT:mai:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:mai:MAX:"Max\:%4.0lf %s\n" \ + LINE1:pcs#FFFF66:"procsy\t" GPRINT:pcs:LAST:"Last\:%4.0lf %s\t" GPRINT:pcs:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:pcs:MAX:"Max\:%4.0lf %s" + + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:tot="${DBASE}":conn_tot:AVERAGE \ + DEF:udp="${DBASE}":conn_udp:AVERAGE \ + DEF:tcp="${DBASE}":conn_tcp:AVERAGE \ + DEF:pop="${DBASE}":conn_pop:AVERAGE \ + DEF:www="${DBASE}":conn_www:AVERAGE \ + DEF:mai="${DBASE}":conn_mai:AVERAGE \ + DEF:pcs="${DBASE}":conn_pcs:AVERAGE \ + AREA:tot#00CF00 \ + LINE1:udp#FF0000 \ + LINE1:tcp#002A97 \ + LINE1:pop#FF00FF \ + LINE1:www#009999 \ + LINE1:mai#DDDDDD \ + LINE1:pcs#FFFF66 + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/scripts/conn-server.sh.snmp b/rrdtools/scripts/conn-server.sh.snmp new file mode 100755 index 0000000..15b2475 --- /dev/null +++ b/rrdtools/scripts/conn-server.sh.snmp @@ -0,0 +1,71 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="conn-server" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:conn_estab:GAUGE:600:U:U \ + DS:conn_active:COUNTER:600:U:U \ + DS:conn_passive:COUNTER:600:U:U \ + DS:conn_fails:COUNTER:600:U:U \ + DS:conn_reset:COUNTER:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`${SNMPGET} TCP-MIB::tcpCurrEstab.0`:`${SNMPGET} TCP-MIB::tcpActiveOpens.0`:`${SNMPGET} TCP-MIB::tcpPassiveOpens.0`:`${SNMPGET} TCP-MIB::tcpAttemptFails.0`:`${SNMPGET} TCP-MIB::tcpEstabResets.0` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Connections" \ + --font DEFAULT:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="Connections" \ + DEF:estab="${DBASE}":conn_estab:AVERAGE \ + DEF:active="${DBASE}":conn_active:AVERAGE \ + DEF:passive="${DBASE}":conn_passive:AVERAGE \ + DEF:fails="${DBASE}":conn_fails:AVERAGE \ + DEF:reset="${DBASE}":conn_reset:AVERAGE \ + LINE1:estab#002A97:"TCP Estab\t" GPRINT:estab:LAST:"Last\:%4.0lf %s\t" GPRINT:estab:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:estab:MAX:"Max\:%4.0lf %s\n" \ + LINE1:active#00CF00:"TCP Active\t" GPRINT:active:LAST:"Last\:%4.0lf %s\t" GPRINT:active:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:active:MAX:"Max\:%4.0lf %s\n" \ + LINE1:passive#FF0000:"TCP Passive\t" GPRINT:passive:LAST:"Last\:%4.0lf %s\t" GPRINT:passive:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:passive:MAX:"Max\:%4.0lf %s\n" \ + LINE1:fails#FF00FF:"TCP Fails\t" GPRINT:fails:LAST:"Last\:%4.0lf %s\t" GPRINT:fails:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:fails:MAX:"Max\:%4.0lf %s\n" \ + LINE1:reset#009999:"TCP Reset\t" GPRINT:reset:LAST:"Last\:%4.0lf %s\t" GPRINT:reset:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:reset:MAX:"Max\:%4.0lf %s\n" + + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:estab="${DBASE}":conn_estab:AVERAGE \ + DEF:active="${DBASE}":conn_active:AVERAGE \ + DEF:passive="${DBASE}":conn_passive:AVERAGE \ + DEF:fails="${DBASE}":conn_fails:AVERAGE \ + DEF:reset="${DBASE}":conn_reset:AVERAGE \ + LINE1:estab#002A97:\ + LINE1:active#00CF00:\ + LINE1:passive#FF0000:\ + LINE1:fails#FF00FF:\ + LINE1:reset#009999:\ + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/scripts/cpu-server.sh b/rrdtools/scripts/cpu-server.sh new file mode 100755 index 0000000..163c1ff --- /dev/null +++ b/rrdtools/scripts/cpu-server.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="cpu-server" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:cpu_srv:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + + +${RRD} update ${DBASE} N:`uptime | awk '{gsub(",", ""); print $(NF-1)}' | awk '{print $1 * 100}'` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="CPU usage" \ + --font LEGEND:7 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="cpu usage %" \ + DEF:cpu="${DBASE}":cpu_srv:AVERAGE \ + AREA:cpu#00CF00:"CPU\t" GPRINT:cpu:LAST:"Last\:%4.0lf %s" GPRINT:cpu:AVERAGE:"Avg\:%4.0lf %s" GPRINT:cpu:MAX:"Max\:%4.0lf %s" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:cpu="${DBASE}":cpu_srv:AVERAGE \ + AREA:cpu#00CF00: diff --git a/rrdtools/scripts/hd-server.sh b/rrdtools/scripts/hd-server.sh new file mode 100755 index 0000000..8376098 --- /dev/null +++ b/rrdtools/scripts/hd-server.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="hd-server" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:hd0_srv:GAUGE:600:U:U \ + DS:hd1_srv:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +HD0SPACE=`df | grep /dev/ad0s1a | awk '{gsub("%", ""); print $(NF-1)}'` +HD1SPACE=`df | grep /dev/ad1s1a | awk '{gsub("%", ""); print $(NF-1)}'` + +${RRD} update ${DBASE} N:${HD0SPACE}:${HD1SPACE} + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="HD space" \ + --font LEGEND:7 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="hd usage %" \ + DEF:hd0="${DBASE}":hd0_srv:AVERAGE \ + DEF:hd1="${DBASE}":hd1_srv:AVERAGE \ + AREA:hd0#00CF00:"ad0 usage\t" GPRINT:hd0:LAST:"Last\:%4.0lf %s" GPRINT:hd0:AVERAGE:"Avg\:%4.0lf %s" GPRINT:hd0:MAX:"Max\:%4.0lf %s\n" \ + LINE1:hd1#002A97:"ad1 usage\t" GPRINT:hd1:LAST:"Last\:%4.0lf %s" GPRINT:hd1:AVERAGE:"Avg\:%4.0lf %s" GPRINT:hd1:MAX:"Max\:%4.0lf %s" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:hd0="${DBASE}":hd0_srv:AVERAGE \ + DEF:hd1="${DBASE}":hd1_srv:AVERAGE \ + AREA:hd0#00CF00 \ + LINE1:hd1#002A97 diff --git a/rrdtools/scripts/old/bw-bge0.sh.old b/rrdtools/scripts/old/bw-bge0.sh.old new file mode 100755 index 0000000..9493147 --- /dev/null +++ b/rrdtools/scripts/old/bw-bge0.sh.old @@ -0,0 +1,58 @@ +#!/bin/sh -x + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="bw-bge0" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:bge0_in:COUNTER:600:U:U \ + DS:bge0_out:COUNTER:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`${SNMPGET} "ifInOctets[1]"`:`${SNMPGET} "ifOutOctets[1]"` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Bandwith" \ + --font DEFAULT:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --upper-limit=180000 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="KB/sec" \ + DEF:byte_in="${DBASE}":bge0_in:AVERAGE \ + DEF:byte_out="${DBASE}":bge0_out:AVERAGE \ + AREA:byte_in#00CF00:"IN\t" GPRINT:byte_in:LAST:"Last\:%8.2lf %s" GPRINT:byte_in:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_in:MAX:"Max\:%8.2lf %s\n" \ + LINE1:byte_out#FF0000:"OUT\t" GPRINT:byte_out:LAST:"Last\:%8.2lf %s" GPRINT:byte_out:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_out:MAX:"Max\:%8.2lf %s\n" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --upper-limit=180000 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:byte_in="${DBASE}":bge0_in:AVERAGE \ + DEF:byte_out="${DBASE}":bge0_out:AVERAGE \ + AREA:byte_in#00CF00: \ + LINE1:byte_out#FF0000: + + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/scripts/old/bw-em0.sh b/rrdtools/scripts/old/bw-em0.sh new file mode 100755 index 0000000..2293433 --- /dev/null +++ b/rrdtools/scripts/old/bw-em0.sh @@ -0,0 +1,54 @@ +#!/bin/sh -x + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="bw-em0" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:em0_in:COUNTER:600:U:U \ + DS:em0_out:COUNTER:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`${SNMPGET} "ifInOctets[1]"`:`${SNMPGET} "ifOutOctets[1]"` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Bandwith" \ + --font DEFAULT:7 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="bytes/sec" \ + DEF:byte_in="${DBASE}":em0_in:AVERAGE \ + DEF:byte_out="${DBASE}":em0_out:AVERAGE \ + AREA:byte_in#00CF00:"IN\t" GPRINT:byte_in:LAST:"Last\:%8.2lf %s" GPRINT:byte_in:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_in:MAX:"Max\:%8.2lf %s\n" \ + LINE1:byte_out#FF0000:"OUT\t" GPRINT:byte_out:LAST:"Last\:%8.2lf %s" GPRINT:byte_out:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_out:MAX:"Max\:%8.2lf %s\n" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:byte_in="${DBASE}":em0_in:AVERAGE \ + DEF:byte_out="${DBASE}":em0_out:AVERAGE \ + AREA:byte_in#00CF00: \ + LINE1:byte_out#FF0000: + + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/scripts/old/hd-server.sh.old b/rrdtools/scripts/old/hd-server.sh.old new file mode 100755 index 0000000..2f8d868 --- /dev/null +++ b/rrdtools/scripts/old/hd-server.sh.old @@ -0,0 +1,48 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="hd-server" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:hd_srv:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + + +${RRD} update ${DBASE} N:`df | grep /dev/ad0s1a | awk '{gsub("%", ""); print $(NF-1)}'` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="HD space" \ + --font LEGEND:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --upper-limit=100 \ + --lower-limit=0 \ + --vertical-label="hd usage %" \ + DEF:hd="${DBASE}":hd_srv:AVERAGE \ + AREA:hd#00CF00:"SPACE USED\t" GPRINT:hd:LAST:"Last\:%4.0lf %s" GPRINT:hd:AVERAGE:"Avg\:%4.0lf %s" GPRINT:hd:MAX:"Max\:%4.0lf %s" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:hd="${DBASE}":hd_srv:AVERAGE \ + AREA:hd#00CF00 + diff --git a/rrdtools/scripts/old/temp-hd.sh.old b/rrdtools/scripts/old/temp-hd.sh.old new file mode 100755 index 0000000..87c9ee6 --- /dev/null +++ b/rrdtools/scripts/old/temp-hd.sh.old @@ -0,0 +1,46 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="temp-hd" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:temp_hd:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`smartctl -a /dev/ad0 | grep Temperature_Celsius | cut -c 88-89` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="HD Temperature" \ + --font LEGEND:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --upper-limit=100 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="celsius" \ + DEF:temp="${DBASE}":temp_hd:AVERAGE \ + AREA:temp#00CF00:"TEMP\t" GPRINT:temp:LAST:"Last\:%4.0lf %s" GPRINT:temp:AVERAGE:"Avg\:%4.0lf %s" GPRINT:temp:MAX:"Max\:%4.0lf %s" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:temp="${DBASE}":temp_hd:AVERAGE \ + AREA:temp#00CF00: diff --git a/rrdtools/scripts/temp-hd.sh b/rrdtools/scripts/temp-hd.sh new file mode 100755 index 0000000..a8005dd --- /dev/null +++ b/rrdtools/scripts/temp-hd.sh @@ -0,0 +1,55 @@ +#!/bin/sh + +BASEDIR=`pwd` +. ${BASEDIR%scripts}/rrdtool.conf + +FILE="temp-hd" +DBASE="${DBASEDIR}/${FILE}.rrd" +IMG="${IMGDIR}/${FILE}.png" +SIMG="${IMGDIR}/small-${FILE}.png" + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:temp0_hd:GAUGE:600:U:U \ + DS:temp1_hd:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + + +TEMP0=`smartctl -a /dev/ad0 | grep Temperature_Celsius | cut -c 88-89` +TEMP1=`smartctl -a /dev/ad1 | grep Temperature_Celsius | cut -c 88-89` + +${RRD} update ${DBASE} N:${TEMP0}:${TEMP1} + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="HD Temperature" \ + --font LEGEND:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --upper-limit=100 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="celsius" \ + DEF:temp0="${DBASE}":temp0_hd:AVERAGE \ + DEF:temp1="${DBASE}":temp1_hd:AVERAGE \ + AREA:temp0#00CF00:"ad0\t" GPRINT:temp0:LAST:"Last\:%4.0lf %s" GPRINT:temp0:AVERAGE:"Avg\:%4.0lf %s" GPRINT:temp0:MAX:"Max\:%4.0lf %s\n" \ + LINE1:temp1#FF0000:"ad1\t" GPRINT:temp1:LAST:"Last\:%4.0lf %s" GPRINT:temp1:AVERAGE:"Avg\:%4.0lf %s" GPRINT:temp1:MAX:"Max\:%4.0lf %s" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:temp0="${DBASE}":temp0_hd:AVERAGE \ + DEF:temp1="${DBASE}":temp1_hd:AVERAGE \ + AREA:temp0#00CF00: \ + LINE1:temp1#FF0000: diff --git a/rrdtools/test.sh b/rrdtools/test.sh new file mode 100644 index 0000000..40f2eda --- /dev/null +++ b/rrdtools/test.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +CPU=expr 0 + `uptime | awk '{gsub(",", ""); print $(NF-1)}'` +CCPU=`expr -e 100 \\* 0.14` +echo $CCPU diff --git a/sendmail-log.php b/sendmail-log.php new file mode 100644 index 0000000..0e8baee --- /dev/null +++ b/sendmail-log.php @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + "; + echo "". + ""; + + $cmdstr="/usr/local/bin/sudo ".$mng_maillog." STEP2 ".$codice." ".$sendmail_log_dir."/".$_REQUEST["sendmail_log"]; + $fp = popen($cmdstr, 'r'); + while ($line = fgets($fp, 4096)){ + preg_match_all("|(.{15}).*:(.*):(.*)$|U",$line,$out, PREG_PATTERN_ORDER); + echo ""; + $out[3][0] = str_replace(">",">", $out[3][0]); + $out[3][0] = str_replace("<","<", $out[3][0]); + $out[3][0] = str_replace($_REQUEST["search_key"], "".$_REQUEST["search_key"]."", $out[3][0]); + echo "
+ + + + + + +". + ""; + echo ""; + echo " +
Analisi Log". + "
"; + + echo "Periodo: ". + ""; + + + echo "  Nr.Risultati: ". + ""; + + echo "  Login o chiave opzionale: ". + ""; + + echo "  
"; + + echo "
data". + "status". + "login". + "RAS". + "port"; + + + if (!$_REQUEST["nlog"]){ + $_REQUEST["nlog"] = "5"; + } + + if (!$_REQUEST["radius_log_file"]){ + $_REQUEST["radius_log_file"]="radius.log"; + } + + if (!$_REQUEST["search_key"]){ + $_REQUEST["search_key"]="Auth"; + } + + $cmdstr = "tail -r ".$radius_log_dir."/".$_REQUEST["radius_log_file"]." | grep -m ".$_REQUEST["nlog"]." ".$_REQUEST["search_key"]; + $fp = popen($cmdstr, 'r'); + + while ($line = fgets($fp, 4096)){ + preg_match_all("|(.{24}).{9}(.*):.*\[(.*)\/.* client (.*) port (.*)\).*|U",$line,$out, PREG_PATTERN_ORDER); + echo "
".$out[1][0]; + echo "".$out[2][0]; + echo "".$out[3][0]; + echo "".$out[4][0]; + echo "".$out[5][0]; + } + + pclose($fp); + + echo "
Mostra ultimi [ "; + echo "1 | "; + echo "5 | "; + echo "15 | "; + echo "25 | "; + echo "50 "; + echo " ] accessi"; + +?> + +
diff --git a/radius-sync.php b/radius-sync.php new file mode 100644 index 0000000..e16ae48 --- /dev/null +++ b/radius-sync.php @@ -0,0 +1,78 @@ + + + + +
+ + + + + + +
Sync DB >> Radius"; + +$query = sqlite_query($dbhandle, "SELECT login, pwd, ip, netmask, opt1 FROM radiususer order by inet_aton(ip)"); +$numrecords = sqlite_num_rows($query); + + +if (is_file($radius_user_file)){ + + echo "radius user file
". + "Backup of old: $radius_user_file
"; + copy($radius_user_file, $radius_user_file.".old"); + +} + +$handle = fopen("$radius_user_file", "w"); + +while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) { + + $record = $entry['login']."\tUser-Password == \"".$entry['pwd']."\"\n". + "\tService-Type = Framed-User,\n". + "\tFramed-Protocol = PPP,\n". + "\tFramed-IP-Address = ".$entry['ip'].",\n". + "\tFramed-IP-Netmask = ".$entry['netmask'].",\n"; + + if ( $entry['opt1'] == "voip_user"){ + $record .= "\tCisco-avpair = \"ip:sub-policy-Out=voip_user\",\n"; + } + + $record .= "\n"; + + fwrite($handle, $record); + +} + +fclose($handle); + +echo "Records succesfully written: ".$numrecords; + + +echo "

". + "radius-sync backend
"; + +passthru("/usr/local/bin/sudo ".$radius_sync_prg, $retval); + +if ($retval != "0"){ + echo "Execution exited with status code:".$retval; +} else { + echo "Execution finished succesfully: $retval"; +} + +?> + +

+
diff --git a/radius-users.php b/radius-users.php new file mode 100644 index 0000000..880f832 --- /dev/null +++ b/radius-users.php @@ -0,0 +1,289 @@ + + + + +
+ + + + + + + + "; + + + } else { + + echo "". + "". + "". + "". + "". + "". + "". + ""; + + + while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) { + $index = $index+1; + + if (($index % 2) == 0){ + $bgcolor = $bgcolora; + } else { + $bgcolor = $bgcolorb; + } + + if ( $entry['vendor'] != "cnet" && (substr($entry['ip'],7,3) == "141" || substr($entry['ip'],7,3) == "146")){ + $entry['ip'] = "ip dinamico"; + } + + if ($entry['netmask'] == "255.255.255.248"){ + $fntcolor="red"; + } else { + $fntcolor="navy"; + } + + echo "". + + ""; + } + } +} + +if ($_REQUEST["step"] == "2"){ + + # Simple decoding + $_REQUEST["sl"]=str_rot13(base64_decode($_REQUEST["sl"])); + + if (!$_REQUEST["nlog"]){ + $_REQUEST["nlog"]=1; + } + + $query = sqlite_query($dbhandle, "SELECT login, pwd, ip, netmask, vendor FROM radiususer where login = '".$_REQUEST["sl"]."'".$VENDOR_RESTR); + + if (sqlite_num_rows($query) != 1){ + echo "Aaarghhhh ! Errore nei dati. Registrato !"; + exit; + } + + $entry = sqlite_fetch_array($query, SQLITE_ASSOC); + $log=$radius_log_dir."/radius.log"; + + echo ""; + echo ""; + echo "". + "". + "". + "". + "
Gestione Utenti RADIUS
+ +
METHOD=POST> + + Modifica parametri di filtro: +   [ >Reset ] +

+ + + +   + + +   + + +   ordina per : + + +   max : + + +   + + + +

+ +". + "
Nessun record trovato
Nr.LoginPasswordIPNetMaskVendor-
$index". + "".$entry['login']. + "".$entry['pwd']. + "".$entry['ip']. + "".$entry['netmask']. + "".$entry['vendor']. + ""; + + if ($admin_option){ + echo "burn it"; + } else { + echo "-"; + } + + echo "
".$_REQUEST["sl"].""; + + # Ping + echo "
"; + $cmdstr = "ping -n -t 2 ".$entry["ip"]; + $fp = popen($cmdstr, 'r'); + + echo "
";
+    while ($line = fgets($fp, 4096)){
+		echo $line;
+	}
+	echo "
"; + pclose($fp); + + # Log Analyze + $cmdstr = "tail -r ".$log." | grep -m ".$_REQUEST["nlog"]." ".$_REQUEST["sl"]; + $fp = popen($cmdstr, 'r'); + + echo "
data". + "status". + "login". + "RAS". + "port"; + + while ($line = fgets($fp, 4096)){ + preg_match_all("|(.{24}).{9}(.*):.*\[(.*)\/.* client (.*) port (.*)\).*|U",$line,$out, PREG_PATTERN_ORDER); + echo "
".$out[1][0]. + "".$out[2][0]. + "".$out[3][0]. + "".$out[4][0]. + "".$out[5][0]; + } + + pclose($fp); + + echo "
Mostra ultimi [ ". + "1 | ". + "5 | ". + "15 | ". + "25 |". + "50". + " ] accessi"; + +} + + +if ($_REQUEST["step"] == "3"){ + + +} + +if ($_REQUEST["step"] == "3"){ + + $_REQUEST["sl"]=str_rot13(base64_decode($_REQUEST["sl"])); + + if ($_REQUEST["vapor"]) { + + sqlite_query($dbhandle, "DELETE from RADIUSUSER where login = '".$_REQUEST["sl"]."'"); + echo "

Record felicemente cancellati : ".sqlite_changes($dbhandle); + + } else { + + echo "

Sei sicuro di voler cancellare questo incolpevole radius login: ". + "".$_REQUEST["sl"]." ?

". + "La tua risposta e' [ Si, fallo sparire ! | ". + "  No, forse domani ]"; + } +} + +?> +

+ +
diff --git a/rrdtools/archive/ciscoGraph.sh b/rrdtools/archive/ciscoGraph.sh new file mode 100755 index 0000000..a63998f --- /dev/null +++ b/rrdtools/archive/ciscoGraph.sh @@ -0,0 +1,341 @@ +#!/bin/sh + +# +# $VER: ciscoGraphs.sh 0.10 (20.10.2005) Riccardo "VIC" Torrini +# + + +tmp=/tmp/tmp_$$ +debug= + +trap 'Break' 1 2 15 + + +CleanUp () +{ + rm -f ${tmp}* +} + + +Break () +{ + echo "${Program}: ** User Break" + CleanUp + exit 2 +} + + +Debug () +{ + [ ${debug} ] && echo "DEBUG: ${1}" +} + + +Error () +{ + echo "** Error ! ${1}" + CleanUp + exit 2 +} + + +Warning () +{ + echo "* Warning ! ${1}" + CleanUp + exit 1 +} + + +Panic () +{ + echo "** Internal error ! ${1}" + CleanUp + exit 3 +} + + +Message () +{ + echo "* ${1}" + return 1 +} + + +isNotNull () +{ + [ "_${2}" = "_" ] && Error "${1}" +} + + +CheckFile () +{ + isNotNull "Invalid parameter to CheckFile()" "${1}" + if [ ! -f ${1} ] + then + if [ "_${2}" = "_" ] + then + Error "File not found (${1})" + else + Error "${2}" + fi + fi +} + + +CheckDir () +{ + isNotNull "Invalid parameter to CheckDir()" "${1}" + if [ ! -d ${1} ] + then + if [ "_${2}" = "_" ] + then + Error "Directory not found (${1})" + else + Error "${2}" + fi + fi +} + + +FileNotFound () +{ + Message "File not found (`basename ${1}`)" +} + + +DirectoryNotFound () +{ + Message "Directory not found (${1})" +} + + +FileExist () +{ + Message "File exist (`basename ${1}`)" +} + + +# Main +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/local/vbin + +dbHome=/var/db/rrd + +### +# +# called as: # ${0} {action} "router|switch" {HOSTNAME} ... +# + +action=${1:-NULL} +isNotNull "Missing action" "${action}" +service=${2:-NULL} +host=${3:-NULL} + +db=${dbHome}/${service}-mpls-${host}.rrd +images=/home/web/virtual-internal/data/stats/services + +CheckDir ${images} +CheckDir ${dbHome} +cd ${dbHome} + +## +# we can't check 'coz variable parms +# +##isNotNull "Missing service" "${service}" +##isNotNull "Missing host name" "${host}" + +case ${action:-NULL} in +create) + ### + # + # called as: create {SERVICEDESC} {HOSTNAME} + # + case ${service:-NULL} in + ping|smtp|http) + test -f ${db} && Error "we are on-air, don't try to destroy existing db (${db})" + rrdtool create ${db} \ + --start `date -v2000y -v6m -v21d -v0H -v0M -v0S +%s` \ + --step 60 \ + DS:trip:GAUGE:300:0:U \ + DS:lost:GAUGE:300:0:U \ + RRA:AVERAGE:0.5:1:50400 \ + RRA:AVERAGE:0.5:60:43800 \ + RRA:MAX:0.5:1:50400 \ + RRA:MAX:0.5:60:43800 + chown nagios ${db} + ;; + router|switch) + test -f ${db} && Error "we are on-air, don't try to destroy existing db (${db})" + rrdtool create ${db} \ + --start `date -v2000y -v6m -v21d -v0H -v0M -v0S +%s` \ + --step 300 \ + DS:load:GAUGE:600:0:100 \ + DS:heat:GAUGE:600:0:U \ + DS:io:COUNTER:600:0:U \ + DS:oo:COUNTER:600:0:U \ + DS:ie:COUNTER:600:0:U \ + DS:oe:COUNTER:600:0:U \ + RRA:AVERAGE:0.5:1:50400 \ + RRA:AVERAGE:0.5:60:43800 \ + RRA:MAX:0.5:1:50400 \ + RRA:MAX:0.5:60:43800 + chown nagios ${db} + ;; + *) + Error "not yet !" + ;; + esac + ;; +collect) + ### + # + # called as: collect {SERVICEDESC} {HOSTNAME} + # + case ${service:-NULL} in + ping) + ##test -f ${db} || Error "db not found (${db})" + if [ -f ${db} ] + then + shift 5 + data=`echo "${*}" | awk -F"@@" ' +{ + split($0, a); + gsub(/[a-zA-Z %]/, "", a[2]); + split(a[2], b, ","); + split(b[1], c, "="); + split(b[2], d, "="); + if ($0 ~ /timed out after 10 seconds/) { + d[2] = 10000; + c[2] = 100; + } +} + +END { + printf( "%s:%s", d[2], c[2] ); +}'` + rrdtool update ${db} ${when}:${data} + fi + ;; + smtp) + echo "${*}" >> /tmp/nagios.debug + ;; + http) + echo "${*}" >> /tmp/nagios.debug + ;; + router|switch) + # + host=fi + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2fi.fi-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=fk + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2fi.fi-telecom.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=ge + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2ge.ge-fastweb.esaote.it ifInOctets.2 ifOutOctets.2 ifInErrors.2 ifOutErrors.2 | awk '{printf( ":%.0f", $NF)}'` + # + host=mi + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2mi.mi-fastweb.esaote.it ifInOctets.2 ifOutOctets.2 ifInErrors.2 ifOutErrors.2 | awk '{printf( ":%.0f", $NF)}'` + # + host=rm + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2rm.rm-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=nx + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2nx.nx-fastweb.esaote.it ifInOctets.2 ifOutOctets.2 ifInErrors.2 ifOutErrors.2 | awk '{printf( ":%.0f", $NF)}'` + # + host=pd + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2pd.pd-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=ba + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2ba.ba-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=bo + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2bo.bo-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=ct + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2ct.ct-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + # + host=na + db=${dbHome}/${service}-mpls-${host}.rrd + rrdtool update ${db} N:0:0`snmpget -cpublic -v1 fw2na.na-fastweb.esaote.it ifInOctets.1 ifOutOctets.1 ifInErrors.1 ifOutErrors.1 | awk '{printf( ":%.0f", $NF)}'` + ;; + *) + Error "not yet !" + ;; + esac + ;; +dump) + ;; +reload) + ;; +daily|weekly|monthly|yearly) + ### + # + # called as: (graph)? (daily|weekly|monthly|yearly) + # + case ${action} in + daily) + dfrom="-s `date -v-1d +%s`" + dend="" + ;; + weekly) + dfrom="-s `date -v-1w +%s`" + dend="" + ;; + monthly) + dfrom="-s `date -v-1m +%s`" + dend="" + ;; + yearly) + dfrom="-s `date -v-6m +%s`" + dend="" + ;; + esac + thisCanvas="--imgformat PNG" + thisGeometry="" + thisRange="${dfrom} ${dend}" + + for service in router + do + for rrd in `ls ${service}-*.rrd` + do + host=${rrd##${service}-} + host=${host%%.rrd} + db=${dbHome}/${service}-${host}.rrd + rrdtool graph ${images}/pkt-${host}-${action}.png \ + ${thisCanvas} ${thisGeometry} ${thisRange} \ + --lower-limit 0 \ + --title "${host} bytes (${service} - ${action})" \ + --vertical-label "bytes/sec" \ + DEF:io=${db}:io:AVERAGE \ + DEF:oo=${db}:oo:AVERAGE \ + LINE2:io#00ff00 \ + LINE2:oo#0000ff + rrdtool graph ${images}/err-${host}-${action}.png \ + ${thisCanvas} ${thisGeometry} ${thisRange} \ + --lower-limit 0 \ + --title "${host} errors (${service} - ${action})" \ + --vertical-label "errors/sec" \ + DEF:ie=${db}:ie:AVERAGE \ + DEF:oe=${db}:oe:AVERAGE \ + LINE2:ie#ff0000 \ + LINE2:oe#808000 + done + done + ;; +help) + echo "Usage: ${0} [create|collect|update|dump|reload|daily|weekly|monthly|yearly|help]" + exit 1 + ;; +esac +exit 0 + diff --git a/rrdtools/archive/cpuGuardian.sh b/rrdtools/archive/cpuGuardian.sh new file mode 100755 index 0000000..f67caf5 --- /dev/null +++ b/rrdtools/archive/cpuGuardian.sh @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# $VER: cpuGuardian.sh 0.6 (28.6.2005) Riccardo "VIC" Torrini +# + + +tmp=/tmp/tmp_$$ +debug= + +trap 'Break' 1 2 15 + + +CleanUp () +{ + rm -f ${tmp}* +} + + +Break () +{ + echo "${Program}: ** User Break" + CleanUp + exit 2 +} + + +Debug () +{ + [ ${debug} ] && echo "DEBUG: ${1}" +} + + +Error () +{ + echo "** Error ! ${1}" + CleanUp + exit 2 +} + + +Warning () +{ + echo "* Warning ! ${1}" + CleanUp + exit 1 +} + + +Panic () +{ + echo "** Internal error ! ${1}" + CleanUp + exit 3 +} + + +Message () +{ + echo "* ${1}" + return 1 +} + + +isNotNull () +{ + [ "_${2}" = "_" ] && Error "${1}" +} + + +CheckFile () +{ + isNotNull "Invalid parameter to CheckFile()" "${1}" + if [ ! -f ${1} ] + then + if [ "_${2}" = "_" ] + then + Error "File not found (${1})" + else + Error "${2}" + fi + fi +} + + +CheckDir () +{ + isNotNull "Invalid parameter to CheckDir()" "${1}" + if [ ! -d ${1} ] + then + if [ "_${2}" = "_" ] + then + Error "Directory not found (${1})" + else + Error "${2}" + fi + fi +} + + +FileNotFound () +{ + Message "File not found (`basename ${1}`)" +} + + +DirectoryNotFound () +{ + Message "Directory not found (${1})" +} + + +FileExist () +{ + Message "File exist (`basename ${1}`)" +} + + +# Main +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/local/vbin + +dbHome=/var/db/rrd +db=${dbHome}/cpu.rrd +images=/home/web/data/stats/cpu +host=`hostname` + + +CheckDir ${images} +CheckDir ${dbHome} +cd ${dbHome} + + +case ${1:-NULL} in +NULL) + Error "missing command" + ;; +createAndInitializeDB) + test -f ${db} && Error "we are on-air, don't try to destroy existing db (${db})" + rrdtool create ${db} \ + --start `date -v2000y -v6m -v21d -v0H -v0M -v0S +%s` \ + --step 300 \ + DS:cpuHeat:GAUGE:600:0:200 \ + DS:fan0Speed:GAUGE:600:0:9000 \ + DS:fan1Speed:GAUGE:600:0:9000 \ + DS:fan2Speed:GAUGE:600:0:9000 \ + DS:Vcore:GAUGE:600:0:5 \ + DS:cpuLoad:GAUGE:600:U:U \ + DS:swapFree:GAUGE:600:0:100 \ + DS:rootFree:GAUGE:600:0:100 \ + DS:varFree:GAUGE:600:0:100 \ + DS:tmpFree:GAUGE:600:0:100 \ + DS:homeFree:GAUGE:600:0:100 \ + DS:usrFree:GAUGE:600:0:100 \ + RRA:AVERAGE:0.5:1:600 \ + RRA:AVERAGE:0.5:12:840 \ + RRA:AVERAGE:0.5:288:900 \ + RRA:MAX:0.5:1:600 \ + RRA:MAX:0.5:12:840 \ + RRA:MAX:0.5:288:900 \ + RRA:LAST:0.5:1:600 \ + RRA:LAST:0.5:12:840 \ + RRA:LAST:0.5:288:900 + ;; +collect) + CheckFile ${db} "db not found (${db})" + rrdtool update ${db} N:0:0:0:0:0:`uptime | awk '{gsub(",", ""); print $(NF-2)}'`:`swapinfo | awk '/Interleaved/ {gsub("%", ""); print $(NF-1)}'`:`df | awk '{gsub("%", "", $5); if($6 == "/") $6 = "/root"; gsub("/", "", $6); used[$6] = $5;} END {printf( "%d:%d:%d:%d:%d\n", used["root"], used["var"], used["tmp"], used["home"], used["usr"] )}'` + ;; +dump) + ;; +reload) + ;; +daily|weekly|monthly|yearly) + CheckFile ${db} "db not found (${db})" + type=${1:-NULL} + case ${type} in + daily) + dfrom="-s `date -v-1d +%s`" + dend="" + ;; + weekly) + dfrom="-s `date -v-1w +%s`" + dend="" + ;; + monthly) + dfrom="-s `date -v-1m +%s`" + dend="" + ;; + yearly) + dfrom="-s `date -v-12m +%s`" + dend="" + ;; + esac + ##thisCanvas="--imgformat PNG --width 400 --height 100" + ##thisGeometry="--lower-limit 0 --base 1000 --upper-limit 100 --rigid" + ##thisRange="--start -24h --end now" + thisCanvas="--imgformat PNG" + thisGeometry="" + thisRange="${dfrom} ${dend}" + + rrdtool graph ${images}/${type}-load.png \ + ${thisCanvas} ${thisGeometry} ${thisRange} \ + --title "${host} cpuLoad (${type})" \ + --vertical-label load \ + DEF:my=${db}:cpuLoad:AVERAGE \ + LINE2:my#ff0000 + rrdtool graph ${images}/${type}-disk.png \ + ${thisCanvas} ${thisGeometry} ${thisRange} \ + --title "${host} diskSpace (${type})" \ + --vertical-label space \ + DEF:swap=${db}:swapFree:AVERAGE \ + DEF:root=${db}:rootFree:AVERAGE \ + DEF:var=${db}:varFree:AVERAGE \ + DEF:tmp=${db}:tmpFree:AVERAGE \ + DEF:home=${db}:homeFree:AVERAGE \ + DEF:usr=${db}:usrFree:AVERAGE \ + LINE2:swap#ff00FF:swap \ + LINE2:root#c00000:/root \ + LINE2:var#00ff00:/var \ + LINE2:tmp#00c000:/tmp \ + LINE2:home#0000ff:/home \ + LINE2:usr#0000c0:/usr + ##GPRINT:swap:MAX:%3.0lf%% + ;; +help) + echo "Usage: ${0} [create|collect|update|dump|reload|daily|weekly|monthly|yearly|help]" + exit 1 + ;; +*) + echo "bad command" + exit 2 + ;; +esac +exit 0 + diff --git a/rrdtools/archive/prove/cpu-load b/rrdtools/archive/prove/cpu-load new file mode 100755 index 0000000000000000000000000000000000000000..465ef70285430282cd57c79e2d3ba83dc44aec0b GIT binary patch literal 7381 zcmcgxeQ;FO6~7@%*Lki&n{)02vez%>BewDeH zv14Jp=77FPfO0*E@tF&{0(4>dncGkSPMyEIc!`TSzlnaI|2;TNIp@vTfnoeJ#r>?H z+~mp+qh9u7pPzHO5>fagg(w?9?0*vh%FQ6+T2Ld_4ChJw7DyH1M$iz(XWLvcOS}WV z#AE+71t_#j{WSz`(ZJ7uxE36L%EW{#+Xzm5t`GXl=5ox(56rT_ozGkss~EDKr3u9T zUk5cluKb%VzUs=KbLBNIR`acQ@$bOd|8{Wi_}kGo^rOl6ZihVR@vqM9zt*+C&c$!I zxEEX%4VB#rfD;R>aWfsYdZS$4wW2R(hAlf{TXwuh7vZ({Zd!f&#%2*sB<*n2)FZYo zReDqLm+>@Ry7Y{_tWS`@Rm3CawO*3Vpqh-SdGcCGw+ele< z$BsxWW{Qpnbu%UOWN+L|B}Hf2j3@0*Xs69oR}yZb8c*tWIBBOMB9V$l63(1CtFWE0 zCe2B0%Qb)y^kLdEB39aQp{vK~s>dRB1a>U`aL-| z{4sKD)=_dSs@KV}+5b$ARd|9N8~r3XHpMA&93Ta9Y{qeNES&erambt{#{qPX90$(? zIS(6*KMMzvj~s`PpBx8PcD$^x0DctO;9Pd3jQh2?>?QOnRu1Erz85R$wZZD?lSPzD zdT&s6dQ@W0!r;+xdRSu4#^CXHdcVY+m7x*um6)?L77-6h%vl;i;$0GRw#G{0w8WgX z(L}smV$R;!K-?-ZqhPcWH%ZKB821ndC1zBN?ZleIjE=zxoi3M{Q8LoRLSjbC=p%mr zKWM0A)QnxkCnaX|jK_#afw$z|yZf#-L^6Bo{rr8t+@A*QJ!SoG<(Bba`c_3gsQ+C|H>y~o3AnZ9~D+hW- zcG&mKDd-iC?<32X_aD!U4Ph1nBg@eWXf9Ouef%Lte|0ANmK;4ixJBwngHW6YyT;WF zfYdH^wD-M;5JGyrvNxCBv$62b1JYjZUob_#5UYpBU%;pcOs>C$a~=0}&*=8$LuGKW zwQ%ecIsIIJJ7ov?E9~;Tgn5zc=QAI>7WUDhnD!OMl|BV*mPX%dYI%F+h5?`duSegW z*-HM=K&;~2+Y2f_O>SHP?ZP$Es&?L9c6eKB;YoL>(5Zar)WFW?bFWSe@im$|^v~z= zdpMW;fc%v%#(V(8&vIjTm$qxbxzO?Je&;v49fCfretmC!C6`dAK) zB~(1Xr)8{V>(8B5xpW5fvs=FrK6)7I6>H_;aW*1&#f-mD=Zul-kD+JwAb&+>A#G)_ z+i7UCW9W!nDi9Y>UyHNW=!UGj)Y$iEiJ+Z_9IagFYPvt_FJjAaHo;>jvAlO_eC(r|S!P!p)us_X0PtAZ=5 zYU;J>Wev484K>TPw2s@4YrirO?3^usge62}ZA^t(sONivac$|UbkrXEOYyw_+8E3Jhh6H7x=tF-XjK(@t-bm^#Qja1@Y zW!3Bp<}+Qml5V(`e`>h4yZ71sc!2baS4>5FQRg=Y@8tZh;rj|NCozuiG2W4fvOYh* zSB4&T?({l3^1$R}f!`)9{8kx)ZCpddAc)^j{FdRhWfAPk?=5iNkLduvrKBU^|4ZQ> zq`u;;t8W+9-^CaofM#G%&IK(5)qvK3HiJ4qCg>5+_d!1a{Sx#t=s4(I&eNML>R!1aLn`U4DH8%#^&52b^Esa6V9^jYv;CDgseE zWm>=v>yE;1R|?&6gNG1LOi$We8=tlC`&C&1oDf_e4t91d*MWoirgfgT zgZajtET!i&oK9QmloO8eMB>3yO7YaZ&%wvMnnzB|b50dvyob)0>GYe=OSu-#6gL5@ z`IaE#xeZv&w*)Jt8(77w1R2GI^UjP09?Dg*>;Q8)7jN{Mo1oX4S z??U~lXYZNf*I;iL_MP+m3bER?Ux9JC8rHjbiHkP@d-K5CfYn`!d0_SKQF-7#$a#Kn z=P(ca2=GZa-dD~j6HfrMYyfe*Jubf4#XkjJ^q9}T7+Z5L=6?X#ny-U#T{%w@`hSayn_PSwus5%Krz?NXmEY@P6|e0s zR(a(fV6Q(mu-fl@Ub}(4dF3bE{%c+PPr3LF7eDP{K%s$taRC;%=Hgl^s_-dQb(t?V z(a1{{uESaa$=Fq*u_F^t*h}NdRkUE)na)mF35T28@7Nq}+1S<|M)o+ob_xn@2(R0` z`u0$GO=$hbO;X|3=JVR=Ku}rT4c z%{gB#D}SkEIOb`k!UjT{&?i&bGBfVY=9|p+BlVt6?3m2#JE?OgzkhK8{Sx_pPh#E4 zeW#K-zeo|r$vnF^H$Itj?}@~d&c73;NxVD%NVr`3J?!S)r~h9AGw?EHud?)?`JWH} E1$` +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#undef FSHIFT /* Use protocol's shift and scale values */ +#undef FSCALE +#include + +#define HOST_WIDTH 15 + +int +rstat_reply(char *replyp, struct sockaddr_in *raddrp) +{ + struct tm *tmp_time; + struct tm host_time; + struct tm host_uptime; + char days_buf[16]; + char hours_buf[16]; + struct hostent *hp; + char *host; + statstime *host_stat = (statstime *)replyp; + + hp = gethostbyaddr((char *)&raddrp->sin_addr.s_addr, + sizeof(struct in_addr), AF_INET); + if (hp) + host = hp->h_name; + else + host = inet_ntoa(raddrp->sin_addr); + + printf("%.0f\n%.0f\n", 100*((double)host_stat->avenrun[1])/FSCALE, 100*((double)host_stat->avenrun[1])/FSCALE); + + tmp_time = localtime((time_t *)&host_stat->curtime.tv_sec); + host_time = *tmp_time; + + host_stat->curtime.tv_sec -= host_stat->boottime.tv_sec; + + tmp_time = gmtime((time_t *)&host_stat->curtime.tv_sec); + host_uptime = *tmp_time; + + #define updays (host_stat->curtime.tv_sec / 86400) + if (host_uptime.tm_yday != 0) + sprintf(days_buf, "%3d day%s ", updays, + (updays > 1) ? "s" : ""); + else + days_buf[0] = '\0'; + + if (host_uptime.tm_hour != 0) + sprintf(hours_buf, "%2d:%02d ", + host_uptime.tm_hour, host_uptime.tm_min); + else + if (host_uptime.tm_min != 0) + sprintf(hours_buf, "%2d mins ", host_uptime.tm_min); + else + hours_buf[0] = '\0'; + + printf("%9.9s%9.9s\n", days_buf, hours_buf); + + printf("%s\n", host); + + return(0); +} + +int +onehost(char *host) +{ + CLIENT *rstat_clnt; + statstime host_stat; + struct sockaddr_in addr; + struct hostent *hp; + struct timeval tv; + + hp = gethostbyname(host); + if (hp == NULL) { + warnx("unknown host \"%s\"", host); + return(-1); + } + + rstat_clnt = clnt_create(host, RSTATPROG, RSTATVERS_TIME, "udp"); + if (rstat_clnt == NULL) { + warnx("%s %s", host, clnt_spcreateerror("")); + return(-1); + } + + bzero((char *)&host_stat, sizeof(host_stat)); + tv.tv_sec = 15; /* XXX ??? */ + tv.tv_usec = 0; + if (clnt_call(rstat_clnt, RSTATPROC_STATS, xdr_void, NULL, xdr_statstime, &host_stat, tv) != RPC_SUCCESS) { + warnx("%s: %s", host, clnt_sperror(rstat_clnt, host)); + return(-1); + } + + addr.sin_addr.s_addr = *(int *)hp->h_addr; + rstat_reply((char *)&host_stat, &addr); + return (0); +} + +int +main(int argc, char *argv[]) +{ + if (argc != 2) { + fprintf (stderr, "Usage %s \n", argv[0]); + exit (0); + } + + onehost(argv[1]); +} + diff --git a/rrdtools/archive/prove/mio.test b/rrdtools/archive/prove/mio.test new file mode 100644 index 0000000..d690c16 --- /dev/null +++ b/rrdtools/archive/prove/mio.test @@ -0,0 +1,13 @@ +#!/bin/sh + + +uptime +CPU=`uptime | awk '{print $11}'` +PIPPO=`expr eval ${CPU%,} + 0` +# echo $CPU +# PIPPO=${CPU%.} +# echo $PIPPO +# ultimo ${pippo%.} +# primo ${pippo#.} + + diff --git a/rrdtools/archive/prove/scripts.orig/bw-adsl.sh b/rrdtools/archive/prove/scripts.orig/bw-adsl.sh new file mode 100755 index 0000000..f84fdd7 --- /dev/null +++ b/rrdtools/archive/prove/scripts.orig/bw-adsl.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +DBASE="/usr/local/www/data/rrdtools/dbase/bw-adsl.rrd" +IMG="/usr/local/www/data/rrdtools/pics/bw-adsl.png" +SIMG="/usr/local/www/data/rrdtools/pics/small-bw-adsl.png" +RRD="/usr/local/bin/rrdtool" +SNMPGET="/usr/local/bin/snmpget -v 1 -c public -Oqv localhost" + + +# RRA = 1 giorno + +# Aggiungere : +# RRA:AVERAGE:0.5:288:31 +# per salvare il report mensile + +# ? +# RRA:AVERAGE:0.5:12:24 + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:adsl_in:COUNTER:600:U:U \ + DS:adsl_out:COUNTER:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`${SNMPGET} IF-MIB::ifInOctets.4`:`${SNMPGET} IF-MIB::ifOutOctets.4` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Adsl Bw" \ + --font DEFAULT:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --upper-limit=180000 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="KB/sec" \ + DEF:byte_in="${DBASE}":adsl_in:AVERAGE \ + DEF:byte_out="${DBASE}":adsl_out:AVERAGE \ + AREA:byte_in#00CF00:"IN\t" GPRINT:byte_in:LAST:"Last\:%8.2lf %s" GPRINT:byte_in:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_in:MAX:"Max\:%8.2lf %s\n" \ + LINE1:byte_out#FF0000:"OUT\t" GPRINT:byte_out:LAST:"Last\:%8.2lf %s" GPRINT:byte_out:AVERAGE:"Avg\:%8.2lf %s" GPRINT:byte_out:MAX:"Max\:%8.2lf %s\n" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --upper-limit=180000 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:byte_in="${DBASE}":adsl_in:AVERAGE \ + DEF:byte_out="${DBASE}":adsl_out:AVERAGE \ + AREA:byte_in#00CF00: \ + LINE1:byte_out#FF0000: + + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/archive/prove/scripts.orig/conn-server.sh b/rrdtools/archive/prove/scripts.orig/conn-server.sh new file mode 100755 index 0000000..f0fda8e --- /dev/null +++ b/rrdtools/archive/prove/scripts.orig/conn-server.sh @@ -0,0 +1,79 @@ +#!/bin/sh + +DBASE="/usr/local/www/data/rrdtools/dbase/conn-server.rrd" +IMG="/usr/local/www/data/rrdtools/pics/conn-server.png" +SIMG="/usr/local/www/data/rrdtools/pics/small-conn-server.png" +RRD="/usr/local/bin/rrdtool" +SNMPGET="/usr/local/bin/snmpget -v 1 -c public -Oqv localhost" + + +# RRA = 1 giorno + +# Aggiungere : +# RRA:AVERAGE:0.5:288:31 +# per salvare il report mensile + +# ? +# RRA:AVERAGE:0.5:12:24 + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:conn_estab:GAUGE:600:U:U \ + DS:conn_active:COUNTER:600:U:U \ + DS:conn_passive:COUNTER:600:U:U \ + DS:conn_fails:COUNTER:600:U:U \ + DS:conn_reset:COUNTER:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:`${SNMPGET} TCP-MIB::tcpCurrEstab.0`:`${SNMPGET} TCP-MIB::tcpActiveOpens.0`:`${SNMPGET} TCP-MIB::tcpPassiveOpens.0`:`${SNMPGET} TCP-MIB::tcpAttemptFails.0`:`${SNMPGET} TCP-MIB::tcpEstabResets.0` + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="Connections" \ + --font DEFAULT:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="Connections" \ + DEF:estab="${DBASE}":conn_estab:AVERAGE \ + DEF:active="${DBASE}":conn_active:AVERAGE \ + DEF:passive="${DBASE}":conn_passive:AVERAGE \ + DEF:fails="${DBASE}":conn_fails:AVERAGE \ + DEF:reset="${DBASE}":conn_reset:AVERAGE \ + LINE1:estab#002A97:"TCP Estab\t" GPRINT:estab:LAST:"Last\:%4.0lf %s\t" GPRINT:estab:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:estab:MAX:"Max\:%4.0lf %s\n" \ + LINE1:active#00CF00:"TCP Active\t" GPRINT:active:LAST:"Last\:%4.0lf %s\t" GPRINT:active:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:active:MAX:"Max\:%4.0lf %s\n" \ + LINE1:passive#FF0000:"TCP Passive\t" GPRINT:passive:LAST:"Last\:%4.0lf %s\t" GPRINT:passive:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:passive:MAX:"Max\:%4.0lf %s\n" \ + LINE1:fails#FF00FF:"TCP Fails\t" GPRINT:fails:LAST:"Last\:%4.0lf %s\t" GPRINT:fails:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:fails:MAX:"Max\:%4.0lf %s\n" \ + LINE1:reset#009999:"TCP Reset\t" GPRINT:reset:LAST:"Last\:%4.0lf %s\t" GPRINT:reset:AVERAGE:"Avg\:%4.0lf %s\t" GPRINT:reset:MAX:"Max\:%4.0lf %s\n" + + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:estab="${DBASE}":conn_estab:AVERAGE \ + DEF:active="${DBASE}":conn_active:AVERAGE \ + DEF:passive="${DBASE}":conn_passive:AVERAGE \ + DEF:fails="${DBASE}":conn_fails:AVERAGE \ + DEF:reset="${DBASE}":conn_reset:AVERAGE \ + LINE1:estab#002A97:\ + LINE1:active#00CF00:\ + LINE1:passive#FF0000:\ + LINE1:fails#FF00FF:\ + LINE1:reset#009999:\ + + # Optionals + # HRULE:150000#FF0000:"MAX possible speed" + # CDEF:byte_in=in,8,* \ + # CDEF:byte_out=out,8,* \ diff --git a/rrdtools/archive/prove/scripts.orig/temp-hd.sh b/rrdtools/archive/prove/scripts.orig/temp-hd.sh new file mode 100755 index 0000000..a4008bb --- /dev/null +++ b/rrdtools/archive/prove/scripts.orig/temp-hd.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +DBASE="/usr/local/www/data/rrdtools/dbase/temp-hd.rrd" +IMG="/usr/local/www/data/rrdtools/pics/temp-hd.png" +SIMG="/usr/local/www/data/rrdtools/pics/small-temp-hd.png" +RRD="/usr/local/bin/rrdtool" +TEMP=`/usr/local/sbin/smartctl -a /dev/ad0 | /usr/bin/grep Temperature_Celsius | /usr/bin/cut -c 88-89` + +# RRA = 1 giorno + +# Aggiungere : +# RRA:AVERAGE:0.5:288:31 +# per salvare il report mensile + +if [ ! -f "${DBASE}" ]; then + +${RRD} create ${DBASE} \ + --start N \ + --step 300 \ + DS:temp_hd:GAUGE:600:U:U \ + RRA:AVERAGE:0.5:1:288 +fi + +${RRD} update ${DBASE} N:${TEMP} + +${RRD} graph ${IMG} \ + --imgformat=PNG \ + --title="HD Temperature" \ + --font LEGEND:7 \ + --rigid \ + --base=1000 \ + --height=100 \ + --width=400 \ + --upper-limit=100 \ + --tabwidth=20 \ + --lower-limit=0 \ + --vertical-label="celsius" \ + DEF:temp="${DBASE}":temp_hd:AVERAGE \ + AREA:temp#00CF00:"TEMP\t" GPRINT:temp:LAST:"Last\:%4.0lf %s" GPRINT:temp:AVERAGE:"Avg\:%4.0lf %s" GPRINT:temp:MAX:"Max\:%4.0lf %s" + +${RRD} graph ${SIMG} \ + --imgformat=PNG \ + --font DEFAULT:5 \ + --height=50 \ + --width=200 \ + --tabwidth=20 \ + --lower-limit=0 \ + --no-legend \ + DEF:temp="${DBASE}":temp_hd:AVERAGE \ + AREA:temp#00CF00: diff --git a/rrdtools/archive/prove/test.sh b/rrdtools/archive/prove/test.sh new file mode 100644 index 0000000..5d5de6e --- /dev/null +++ b/rrdtools/archive/prove/test.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +. rrdtool.conf +echo $BASEPATH diff --git a/rrdtools/archive/rrd-hddmon.pl b/rrdtools/archive/rrd-hddmon.pl new file mode 100755 index 0000000..99cf19d --- /dev/null +++ b/rrdtools/archive/rrd-hddmon.pl @@ -0,0 +1,61 @@ +#!/usr/bin/perl + + +# RRA:CF:xff:step:rows + +$debug = 1; + +$dbname = "dbase/hdtemp.rrd"; +$pic="temp.gif"; + +$step = 10; # 5min , 5*60sec +$num_pdp=3600/$step; # 12 value of pdp = (5*60)*12 = 1 hour +$rows_pdp=24; # 24 value of $num_pdp = 1 day + + +$rrdtool = "/usr/local/bin/rrdtool"; +#$create = "$rrdtool create $dbname ". +# " --start now-1h ". +# " --step $step ". +# " DS:hdtemp:GAUGE:".(2*$step).":0:100 ". +# " RRA:AVERAGE:0.5:$num_pdp:$rows_pdp ". +# " RRA:MIN:0.5:$num_pdp:$rows_pdp ". +# " RRA:MAX:0.5:$num_pdp:$rows_pdp "; + +$create = "$rrdtool create $dbname ". + "--start now-1h ". + "--step $step ". + "DS:hdtemp:GAUGE:".(2*$step).":0:100 ". + "RRA:MIN:0.5:1:".(6*$step)." ". + "RRA:MAX:0.5:1:".(6*$step)." ". + "RRA:LAST:0.5:1:".(6*$step)." ". + "RRA:AVERAGE:0.5:1:".(6*$step); + +system($create); + +while(1) { + + @hdparams = `smartctl -a /dev/ad0`; + foreach $line (@hdparams) { + if ($line =~ /Temperature_Celsius/){ + @temp = split (" ",$line); + print $temp[9]." "; + } + } + + $now = time(); + $update = "$rrdtool update $dbname $now:$temp[9]"; + system($update); + + $graph ="$rrdtool graph $pic --title \"HD temp\" ". + "--start now-1h ". + "DEF:c=$dbname:hdtemp:AVERAGE ". + "AREA:c#0000FF:Temperature ". + "GPRINT:c:MIN:'Min\\: %3.1lf%S' ". + "GPRINT:c:MAX:'Max\\: %3.1lf%S' ". + "GPRINT:c:LAST:'Last\\: %3.1lf%S' ". + "GPRINT:c:AVERAGE:'Avg\\: %3.1lf%S' "; + + system($graph." > /dev/null"); + sleep $step; +} diff --git a/rrdtools/dbase/bw-bge0.rrd b/rrdtools/dbase/bw-bge0.rrd new file mode 100644 index 0000000000000000000000000000000000000000..15592ca02d660d6a492c791bd5af83600f9e2507 GIT binary patch literal 5464 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 baf4L3KrFXDT?rF+NQ;M``h3vXdj|dk(xY~i literal 0 HcmV?d00001 diff --git a/rrdtools/dbase/bw-em0.rrd b/rrdtools/dbase/bw-em0.rrd new file mode 100644 index 0000000000000000000000000000000000000000..325465bb8c9e36c8b9013ec33cc2f8f8f486f039 GIT binary patch literal 5464 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 V0YcS%Yh!Zaka>UCU}S6_{sS3{Yk>d& literal 0 HcmV?d00001 diff --git a/rrdtools/dbase/conn-server.rrd b/rrdtools/dbase/conn-server.rrd new file mode 100644 index 0000000000000000000000000000000000000000..cf3786a79d11a1058443845c1997973bea09b151 GIT binary patch literal 18544 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 S6fCTVF$1qXUQ6dO0{#d6j^=;> literal 0 HcmV?d00001 diff --git a/rrdtools/dbase/cpu-server.rrd b/rrdtools/dbase/cpu-server.rrd new file mode 100644 index 0000000000000000000000000000000000000000..78a42cf863d302e0394cfad47a90f7956b9b0646 GIT binary patch literal 2848 zcmb_edpMQZ8kb8pLfT!nBqR|+Nt+Ze5+Sn7E!8lknn_p6L@{+vG^J1))>_*z?o%Q) z6QPR~xfGQ{7baZ@5lYc)yXIBRGtK#@p7WgVdG=o4x7P1_-{1Rte{1b65G;@|F)=Zf zz{^IWGm9L+cSu+A1OI8}_&LhxMSZ*nANMOX&X`Sbb37qJ9Xb)FdDkbz;>U0|F-t_ZB=1BB0#3Xv7$Q0-D|TED~oC za5(XfCp(qE+TzK23Zn_+7QfnhJB&a|-qE{HTnU`@njsL|5g5|GyuA$ZUCH+ zPhkAHyh(w!1h_Y>n>y49+-=ngZn7j0x+OPp6!Nc$Q?gPTMIc|+#j4wyK%_zQ6Gxn% ztEn$1jdekse}6yb(=&Ih8paivM)E`x$Or9sSf|=#pJiSIF6FM@pleLP_1X7kLx@kW z+3Q#5OF&I7b%o|^0u6oU(BnoxSE@=w4SBY0N=kW!{B%a{Irb9cWL6i=YQy)9;i5Ln1lC_Uax`fX0mW{fks{V@`eM*C(!w@yQ&<4 zLHkmmPZgcBM6FExP^c~b0;Sm=LdWq zZscISQIhjBT2UX3&Yx`Jrx0j%?TvbkJT-a)92$}5*=b9o`?b*r>-2t>M7&0qNKuJ{ zJfb&u3?dJ%cx+~n2I_OY+VdRZ3c`9-{8R`yhXm*KnGz7UAK>I;+#l|H)wf~XP}#_F z3aEFuPuf#u)HhJF{q}Rj1>Y| zL}hmMKa*h)V-_cS=_!Sk`8isXODK5p5`_vm6t2Aua;%eO5I-j-_4F$WDRGl+6zeGj zjB-hRh`9HDDWEW2pc>xzfWmDjtypdi1*hXn_N%8*xZts>ESJwfCV7#v4aPZ^*+|QDyHm!%bk>$byEWMdKj0WPbM$=5Ll3z};hLuJ#=YZk^Mj zRZmfPbgSI?`R$MSag?&Xxbw0CgHy{U^cpo#NOmMQ2ar#|b;%mPZVKt?9_ymL7+h-} zxYseA!Q!DeQUkgSggtruu{SB)@Q>N>_%Vglnv{L&zo9 zl}i-#b&Aw$)EK-!4<|9$snzBSIRE|`$6r*VdzYtCaJKrxZEOgGw$ohC02c=QeDSlH zxSn%%iexYH3O`uedU!PhZQpTzA&v|N8o0@({U7VWyzwR3&TAwYH0P++m=#hu<-R=o zMJ>J`Rqt~E`!|2}<)-!l3fYcJLx!XnSO*K|%(_OQrGhT+xlbXcGq*Zen!$69ft6_! zh1ibQ5o*{kqnZb!M`2&L&Qq&wZ=}#EuTmXQfqib4G^^5JuxtOpU2`yRZDVJs2;&Zz z=cG#yQMk3r#l@(Pg6PVv)T+|I`!4Aaz?Z{#_U;4u#*AVv z1NK(Y(`^m|^TVZ4siPRoI2w>Yv5SI+WvjO_^2#5~p4fzbe_P2-*oeLsIV_%@l)xaI zmn20GGT5;pr%_=dgSC3kV$_gV^a-nRWmOdRo|oU+jd^~Rs&Mdz{UR8ws0(@#v6VsRW|f)iL(%^M7mu!9#~`FxMfy1QH!y?abrSXR_WB{U z8~vT)#QlgJ}{_<1sTJb6|#vNmD%vCpwLP%AWr~`e+7cSRdLi(7BL zEv67D|4sWu>>KO9SyDCJhuEypWfv$+?$xxtj=FUAH7vV{x=RdS^%NQx$2;{s!@gau z^p3}8{}%m#e#~>bF{QhX&mfX(Khhod8L#}(^i(&MRFN;68}lXSKLX z8~1C5(|SepL!W}_%H|*jby^!Og^3K@w7y=T{~ZI5xn~OJau`(1&-yk8&x!MGZ}o*+cn)2#J*Xnz zOCdOR$=5Qdzoo8e07sF*mK{OzGRUXQtXWn8>x0*~DkM?Qdb`<0XAnPTo1**hIZ>8q zwJ!Y`9{??w0lM%;1Re8tT5Bo~@$7Q3>Wu*7;{S6o-Jd4vGiRWh8(j1+I z_&(QrrX9pED3WvHM(~Be*MGwC*B3(1n)TZK4nnZD=or!Ul@JbS#S2Uwg^+8iYbeI~ tB0rvZnvoFJAK@>M(-gw{zn3`9KbDtu*9&o<{`bM(;iXBX-9={z{0Sb>POks} literal 0 HcmV?d00001 diff --git a/rrdtools/dbase/hd-server.rrd b/rrdtools/dbase/hd-server.rrd new file mode 100644 index 0000000000000000000000000000000000000000..13fe5100f1e03b7c482bd56e4a9647cc2b8a69f3 GIT binary patch literal 5464 zcmd6qze>Yk6vd;fgHIqjDAFnz@c~TH(n07@s0dcNbm%AwE^aQ44&tVxyXfR1ZX!5z z@Bw^*?wwlGre8yULr<s zf6Dl1HvIbe*~OS^sZcEy$6oQgqkf3d(dk8(?mQwAUo;!rGwEA6ELIAbZY5mTcxiuj z6AvMT?e$jap|;>v%Lip49nd$AizladS3wf(Bu&zOlRWI)-}ge)D<4E>=i|=yB;ysG z-qPsix*nd_8yvY|Pj~-gJ}QZE9bmo z?|SR)Gq)PJ`D$OmVp`Ms}H7|K$qB1cC+gYn7o{!I&Hw-a literal 0 HcmV?d00001 diff --git a/rrdtools/dbase/temp-hd.rrd b/rrdtools/dbase/temp-hd.rrd new file mode 100644 index 0000000000000000000000000000000000000000..6c1b23065e489e2c86e0340d9510b2a909b1c650 GIT binary patch literal 5464 zcmWFva$ztqFfe8S0)5p3$DOt1qnUtgMj+M!5mW{xsksFP@fj(|#=1L(y1OC^0ND{B zN5H|4{}3jOhD#950NHCe0QNeDxdu6+`Az{Cu85$0U{ACs2q=7~e!)GGhlwH7&)biH zQn0j}t;=HR1ydb}QHxIvvGy%&W$DoqoKCTQ5Vw$@7XJMQ0b8g$?4dOI=0V)!-~f)( z1_uX0c;wnTC~do`qj=j6Y6rTVxcLw_+Mu}+w|a;hNSBA$W9LxV@O>gPMwr0d4GSYX z2gBow{2Bfu_%OdiXqb8jsJqGMqs9^C=0S=R!tUYo(2ZK?WA6a7zvtQ^r;Iy<{flls zAwIRk3ufMeji3A2q7d%o4?ceW^=*3xboap2^T=%RIm&>LukJ2%)xhAeujGlc>%fEat<^%Xzp+gX;yR z`MCT`s{Q1uC)IvZ)x-Rc%YCr)3zJ9Z6Vgv>`N^B_@c+Mr$d9K}n^LD5Blv{uNB0k@ z;U|1M?2-I`gnf}Ri>7pHA^3#sN0*1W=l6t_lA&UV^timsJLuy-1RtW$0bahq_~_=5 z$|u$T=;p)RPc8SLn@@<3Za+GokbaoFfrT_LPdlPKgMK%A0-DYzskP3uE<+x z3#IKH_UQkS(wK!_f5OrOBK~0J!R&*$6Q&MEBh*9GVe(b>pL^aOjj%6>_t64@)d)V! z{FCBJq9#uf`j-br|9vfq;NvnMrXMB`3(xI_ONH-ZNsp-N9USP*hq(`8FJb#3@nGlh zP~+93k4W{`B90e)fAIM4?Hh%yH$5=JPil7LX9Gq=_`i?f%shV)!AA`bO#Qgzw{Bga ztY3((p0NK=%_Cp^t-lT>872t(6|PLpypJb*hz);q_mLWZxYY06`s8vyQu_Y)K+r#Q zH^Tkox)0sGg!s7JN2>iU4MOi{A^8WQAG3Tybq~6K?HyRF>+Y5IA<|>#|IeERHX-;h z_fBE*_`;0TK0|jekI`Bu&P+sk_;iy=%C9r%_K~07(Cr(p{MFS}>c^1UFA#si!qLIu zq_A4TKL%KR;NWm!q4lyuR}p-4^~CZ!D&JnsuZP8ty~F%7q3fncAo$wTj)bi!Lhxk$xijic20}i}EJA@;z^KO1N}9Me3Adokr@V=pS7h39KqhrSu7mvo-AgPLRGP{~{) J+pBEn007sm;a~s& literal 0 HcmV?d00001 diff --git a/rrdtools/img/bw-bge0.png b/rrdtools/img/bw-bge0.png new file mode 100644 index 0000000000000000000000000000000000000000..573819830c4932a8bb002fd9884a861ad9049e3d GIT binary patch literal 18009 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 E|^pgjWjsPq>d;U9f{(7`E;C@(iE= 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 Rgw{ivw{`z6_{;qD{{StlVxs^6 literal 0 HcmV?d00001 diff --git a/rrdtools/img/cpu-server.png b/rrdtools/img/cpu-server.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc4dde2a5fc79ecfeba1c6977d8fbd8692121f8 GIT binary patch literal 12622 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�(wZ~ZA;sBQtIWde`y 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 IFY|!^2T0%GivR!s literal 0 HcmV?d00001 diff --git a/rrdtools/img/hd-server.png b/rrdtools/img/hd-server.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf5923d78ecd1e4f7f1d194791b49dd33bfb5b4 GIT binary patch literal 12873 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 literal 0 HcmV?d00001 diff --git a/rrdtools/img/small-conn-server.png b/rrdtools/img/small-conn-server.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf8bf56180f785d1595b32d81eb48f89422ae8e GIT binary patch literal 9107 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 Bw8H=Z literal 0 HcmV?d00001 diff --git a/rrdtools/img/small-cpu-server.png b/rrdtools/img/small-cpu-server.png new file mode 100644 index 0000000000000000000000000000000000000000..a6cabe4f87a9affa50e82a9444c2d87e04ddd10b GIT binary patch literal 4353 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 literal 0 HcmV?d00001 diff --git a/rrdtools/img/small-temp-hd.png b/rrdtools/img/small-temp-hd.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcb85f49e741cd957bcb17fa5eac2faf4cf4975 GIT binary patch literal 4553 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
sendmail log
+ +
METHOD=POST> + Comandi disponibili: +   [ >Reset ] +   [ Ricerca ] +

+". + "Chiave di ricerca: ". + " oppure : "; + + echo "  ". + "Giorno: ". + ""; + + + echo "  ". + "Nr risultati: ". + "

"; + + + if (($_REQUEST["search_key"] ?? '') || ($_REQUEST["search_key_auto"] ?? '')){ + + if ( $_REQUEST["search_key_auto"] ) { $_REQUEST["search_key"] = $_REQUEST["search_key_auto"]; } + + # $result=exec($grepbin." '".$_REQUEST["search_key"]."' ".$sendmail_log_dir."/".$_REQUEST["sendmail_log"]."| cut -f4 -d: | sort -u", $codici); + + $result=exec("/usr/local/bin/sudo ".$mng_maillog." STEP1 '".$_REQUEST["search_key"]."' ".$sendmail_log_dir."/".$_REQUEST["sendmail_log"], $codici); + # var_dump($codici); + + echo "Chiave di ricerca selezionata: '".$_REQUEST["search_key"]."'". + "   -   ". + "Numero massimo risultati: '".$_REQUEST["search_max_results"]."'"; + + echo "   -   ". + "DEBUG: "."/usr/local/bin/sudo ".$mng_maillog." STEP1 '".$_REQUEST["search_key"]."' ".$sendmail_log_dir."/".$_REQUEST["sendmail_log"]; + "

"; + + $counter = 0; + foreach($codici as $codice) { + + if ($counter == $_REQUEST["search_max_results"]) { + break; /* Equivalente a 'break 1;' */ + } + + # Il codice e' di 14 ma c'e' uno spazio all'inizio + if (strlen($codice) <> 15) { continue; } + + echo "

 
clear".++$counter." - msg ID :".$codice."
".$out[1][0].""; + # echo "".htmlentities($out[3][0]).""; + echo "".$out[3][0].""; + } + pclose($fp); + } + } + + echo "
"; + +?> + + + + + + + diff --git a/sendmail-mailq.php b/sendmail-mailq.php new file mode 100644 index 0000000..05a64d8 --- /dev/null +++ b/sendmail-mailq.php @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + analisi queue + + +

METHOD=POST> + + tipo di coda: + +    + + campo di ricerca + + +    + + chiave : + +   [ Inizia ricerca ] +   [ >Restart ] + + +". + "messaggio: ".$_REQUEST["kill_queue_uid"]. + " cancellato !!!"; + + $result = shell_exec($cmdstr1); + + } + + + + ### analisi singolo queue_id #################################################################### + if (isset($_REQUEST["queue_uid"])){ + + $cmdstr1 = "sudo /bin/cat /var/spool/mqueue/hf".$_REQUEST["queue_uid"]; + $cmdstr2 = "sudo /bin/cat /var/spool/mqueue/df".$_REQUEST["queue_uid"]; + + + echo "". + "messaggio: ".$_REQUEST["queue_uid"]."". + "   ". + "delete from disk". + "   ". + "resend from queue". + ""; + + echo "". + "Analisi RAW headers

".
+			shell_exec($cmdstr1).
+		 	"".
+			"Analisi RAW Body

".
+			shell_exec($cmdstr2).
+			"
"; + + } + + ### creazione lista queue ######################################################################## + if (isset($_REQUEST["sendmail_type_queue"])){ + + $match1 = "|^(\S+)\s+(\d*)\s*(.+)<(.*)>$|i"; + $match3 = "|^\s+<(.*)>$|i"; + + if ($_REQUEST["sendmail_type_queue"] == "quarantine"){ + + $cmdstr = "sudo /usr/bin/mailq -qQ "; + $match2 = "|^\s+(QUARANTINE.*)$|i"; + $color = "red"; + + } else { + + $cmdstr = "sudo /usr/bin/mailq -q -vv "; + $match2 = "|^\s+\((.*)\)$|i"; + $color = "green"; + + } + + + if ($_REQUEST["key2"]){ + + switch ($_REQUEST["key1"]) { + case "key1_uid": + $cmdstr .= "-qI".$_REQUEST["key2"]; + break; + case "key1_sndr": + $cmdstr .= "-qS".$_REQUEST["key2"]; + break; + case "key1_rcp": + $cmdstr .= "-qR".$_REQUEST["key2"]; + break; + case "key1_qua": + $cmdstr .= "-qQ".$_REQUEST["key2"]; + break; + } + } + + $index=0; + $fp = popen($cmdstr, 'r'); + while ($line = fgets($fp, 4096)){ + + if (preg_match($match1,$line,$out)){ + $index += 1; + + $id[$index] = $out[1]; + $size[$index] = $out[2]; + $date[$index] = $out[3]; + $from[$index] = $out[4]; + $rcp[$index] = ""; + $msg[$index] = "undefined"; + + } + + if (preg_match($match2,$line,$out)){ + + $msg[$index] = $out[1]; + + } + + if (preg_match($match3,$line,$out)){ + + $rcp[$index] .= $out[1]." "; + + } + } + + echo "". + "-". + "id". + "mittente". + "dim.". + "data". + "destinatari". + "messaggio"; + + + for ($i = 1; $i <= $index; $i++) { + + echo "". + + "".$i."". + "".$id[$i]."". + "".$from[$i]."". + "".$size[$i]."". + "".$date[$i]."". + "".$rcp[$i]."". + "".substr($msg[$i],0,60)."". + ""; + } + + } +?> + + + + + + + diff --git a/spam-log.php b/spam-log.php new file mode 100644 index 0000000..318cb06 --- /dev/null +++ b/spam-log.php @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + Spam Filter + + + + +
METHOD=POST> + + Tipologia rifiuto : + + +

+ Chiave di ricerca alternativa (es. 14:12 oppure nome@ ) +

+ + "; + + $num_log = 0; + $logfiles = scandir($spam_log_dir); + foreach ($logfiles as $file) { + if (substr($file,0,strlen($spam_log_file)) == $spam_log_file) { + echo ""; + $num_log += 1; + } + } + + if ($num_log == 0) { echo "";} + + echo ""; + ?> + + + + Cerca ]  [ Reset ]"; ?> + + + +

+ + Recent stuff +#Oct 22 02:50:59 freebsd Spamilter[631]: Spam 61.83.93.161 Hot and new +#Oct 22 03:00:49 freebsd Spamilter[631]: Accepted 61.54.55.194 entering ISBN number +#Jun 23 13:51:21 freebsd Spamilter[53085]: Rejected 81.92.123.21 Blacklisted Sender '' + +$_REQUEST["step"]=$_REQUEST["step"] ?? ''; +if ( $_REQUEST["step"] == "1" ){ + +echo ""; +echo "Nr"; +echo "Data"; +echo "Tipologia"; +echo "IP"; +echo "Mittente"; +echo "Destinatario"; +echo "Causa"; + +# Fix Spam != Spamilter + +if ($_REQUEST["key2"] !="") { $_REQUEST["key"] = $_REQUEST["key2"]; } +if ($_REQUEST["key"]=="Spam"){ $_REQUEST["key"]="Spam "; } + +$match = "|(.{15}).*Spamilter\[.*\]:.(.*).(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b).*<(.*)>.<(.*)>.(.*)$|U"; +$cmdstr = $grepbin." -m ".$_REQUEST['nlog']." \"".$_REQUEST['key']."\" ".$spam_log_dir."/".$_REQUEST['spam_log_file']; + +$fp = popen($cmdstr, 'r'); + + $index=0; + while ($line = fgets($fp, 4096)){ + preg_match_all($match,$line,$out, PREG_PATTERN_ORDER); + $fnt_color="navy"; + + switch ($out[2][0]){ + + case "Rejected": + $fnt_color="red"; + break; + + case "Sender": + $fnt_color="magenta"; + break; + + case "Spam": + $fnt_color="navy"; + break; + + case "Accepted": + $fnt_color="green"; + break; + } + + echo ""; + echo "".++$index ; + echo "".$out[1][0]; + echo "".$out[2][0]; + echo "".$out[3][0]; + echo "".$out[4][0].""; + echo "".$out[5][0].""; + echo "".htmlentities(substr($out[6][0],0,50))." ..."; + } + +pclose($fp); + +} + +?> + + + + + + diff --git a/spam-manage.php b/spam-manage.php new file mode 100644 index 0000000..0dae1e2 --- /dev/null +++ b/spam-manage.php @@ -0,0 +1,263 @@ +"; + +if (isset($_REQUEST["newemail"])){ + $newemail=explode("@",($_REQUEST["newemail"] ?? ''),2); + $case_defdomain=$newemail[1]; + $case_defemail=$newemail[0]; +} else { + $case_defdomain = "domain.com"; + $case_defemail = "mario.rossi"; +} + +if (isset($_REQUEST["newemail"])){ + $newpattern=explode("@",($_REQUEST["newemail"] ?? ''),2); + $pattern_domain=$newpattern[1]; +} else { + $pattern_domain = ""; +} + +if ($pattern_domain != ""){ + $_REQUEST["pattern"] = $pattern_domain; +} + +switch ($_REQUEST["type"]) { + case "SND": + $case_desc="mittenti"; + $case_file=$sndr_file; + break; + + case "RCP": + $case_desc="destinatari"; + $case_file=$rcpt_file; + break; +} + +# echo "STEP2: [".$_REQUEST["step"]."]

"; +# echo "PAT1: [".$_REQUEST["pattern"]."]

"; +if ($_REQUEST["step"]=="restart" && $_REQUEST["pattern"] != '') { + $sql="SELECT * FROM SPAMILTER where type='".$_REQUEST["type"]."' and (email LIKE '%".$_REQUEST["pattern"]."%' OR domain LIKE '%".$_REQUEST["pattern"]."%') order by domain,email desc"; +} else { + $sql="SELECT * FROM SPAMILTER where type='".$_REQUEST["type"]."' order by domain,email desc"; +} +### echo "STEP3: [".$_REQUEST["step"]."]

"; +### echo "PAT2: [".$_REQUEST["pattern"]."]

"; + +function WriteFiles($case_file) { + + $dbh = new PDO('sqlite:db/petar.db3'); + $sql="SELECT * FROM spamilter where type='".$_REQUEST["type"]."' order by domain,email desc"; + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + $handle = fopen("$case_file", "w"); + foreach($rows as $row){ + fprintf($handle, "%-30s | %-30s | %-30s\n" , $row["domain"], $row["email"],$row["action"]); + } + fclose($handle); + } +} + +?> + + + + + + + + + + + + + + >Spamilter + +". + ""; + +if ($_REQUEST["step"] == "restart" && $_REQUEST["pattern"] == ''){ + $_REQUEST["step"] = ''; +} + +### echo "STEP4: [".$_REQUEST["step"]."]

"; +if (($_REQUEST["step"] == "" && ($_REQUEST["type"] == "SND" || $_REQUEST["type"] == "RCP")) || $_REQUEST["pattern"] != ''){ + + echo "Gestione dei $case_desc [ $case_file ]". + "  ". + "[ ricarica pagina ]". + "

". + "

". + "". + " @ ". + "". + " azione ". + "  ". + "[ aggiungi regola ]". + "  ". + "". + "
"; + + echo "
". + "". + "  ". + "[ filtra risultati ]". + "". + "". + "
"; + + echo "". + "Dominio dei $case_desc". + "Email". + "Azione". + "x"; + + $result=$dbh->query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + + foreach($rows as $row){ + + if ($row["email"] == ""){ + + $row["email"] = "
qualsiasi email
"; + } + + switch ($row["action"]){ + + case "Accept": + $fntcolor = "navy"; + break; + + case "Reject": + $fntcolor = "red"; + break; + + case "Tag": + $fntcolor = "magenta"; + break; + } + + echo "". + "".$row["domain"]."". + "".$row["email"]."". + "".$row["action"]."". + "". + "". + "burn it"; + } + + } else { + + echo "". + "Nessun record
"; + } +} + + +if ($_REQUEST["step"] == "1"){ + + ### Campo Dominio vuoto + if (!$domain || $domain == ""){ + $errore .= "Campo Dominio mancante

"; + } + + ### Regola presente + $sql= "SELECT domain FROM SPAMILTER where type = '".$_REQUEST["type"]."' and domain = '".$domain."' and email = '".$email."'"; + $result = $dbh->query($sql); + $rows=$result->fetchAll(); + + if ( count($rows) > 0 ) { + $errore .= "Regola gia' presente

"; + } + + ### Stampa Errore + if ($errore){ + + echo "Errore

". + $errore. + "

Correzione"; + + } else { + + ### Inserimento nel DB + + $sql = "insert into SPAMILTER (type,domain,email,action,other) VALUES ('".$_REQUEST["type"]."','".$domain."','".$email."','".$rule."','')"; + $result = $dbh->query($sql); + + if ($result = 1) { + echo "Scrittura Completata. Premi qui
"; + } + + WriteFiles($case_file); + } +} + +if ($_REQUEST["step"] == "3"){ + + if (isset($_REQUEST["vapor"])) { + + $count = $dbh->exec("DELETE from SPAMILTER where id = '".$_REQUEST["id"]."'"); + + echo "

". + "Scrittura Completata. Premi qui

". + "Record felicemente cancellati: ".$count; + + WriteFiles($case_file); + + } else { + + $sql = "SELECT * FROM SPAMILTER where id = '".$_REQUEST["id"]."'"; + $result = $dbh->query($sql); + $row=$result->fetch(); + + echo "". + "Sei sicuro di voler cancellare questa incolpevole regola : ?
". + "".$row["domain"]." : ".$row["email"]." : ".$row["action"]. + "

". + "La tua risposta e' ". + "[ Si, non ho mai sopportato ".$row["domain"]." ! | ". + "  No grazie ]"; + } +} + +?> + + + + + + diff --git a/spamass-log.php b/spamass-log.php new file mode 100644 index 0000000..b38441a --- /dev/null +++ b/spamass-log.php @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + Spam Filter + + + + +

METHOD=POST> + + + Tipologia rifiuto : + + + +

+ Chiave di ricerca alternativa (es. 14:12 oppure nome@ ) + +

+ + "; + + $logfiles = scandir($spam_log_dir); + foreach ($logfiles as $file) { + if (substr($file,0,strlen($spam_log_file)) == $spam_log_file) { + echo ""; + } + } + + echo ""; + + ?> + + + + Cerca ]"; + ?> + + + +

+ + + + Recent stuff +#Oct 22 02:50:59 freebsd Spamilter[631]: Spam 61.83.93.161 Hot and new +#Oct 22 03:00:49 freebsd Spamilter[631]: Accepted 61.54.55.194 entering ISBN number +#Jun 23 13:51:21 freebsd Spamilter[53085]: Rejected 81.92.123.21 Blacklisted Sender '' + + +if ( $_REQUEST["step"] == "1" ){ + +echo ""; +echo "Nr"; +echo "Data"; +echo "Tipologia"; +echo "IP"; +echo "Mittente"; +echo "Destinatario"; +echo "Causa"; + + +# Fix Spam != Spamilter + +if ( $_REQUEST["key2"] ) { + + $_REQUEST["key"] = $_REQUEST["key2"]; + +} + +if ($_REQUEST["key"]=="Spam"){ + $_REQUEST["key"]="Spam "; +} + +$match = "|(.{15}).*Spamilter\[.*\]:.(.*).(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b).*<(.*)>.<(.*)>.(.*)$|U"; +$cmdstr = $grepbin." -m ".$_REQUEST["nlog"]." \"".$_REQUEST["key"]."\" ".$spam_log_dir."/".$_REQUEST["spam_log_file"]; + +$fp = popen($cmdstr, 'r'); + + while ($line = fgets($fp, 4096)){ + + preg_match_all($match,$line,$out, PREG_PATTERN_ORDER); + + $fnt_color="navy"; + + switch ($out[2][0]){ + + case "Rejected": + $fnt_color="red"; + break; + + case "Sender": + $fnt_color="magenta"; + break; + + case "Spam": + $fnt_color="navy"; + break; + + case "Accepted": + $fnt_color="green"; + break; + } + + echo ""; + echo "".++$index ; + echo "".$out[1][0]; + echo "".$out[2][0]; + echo "".$out[3][0]; + echo "".$out[4][0].""; + echo "".$out[5][0].""; + echo "".htmlentities(substr($out[6][0],0,50))." ..."; + } + +pclose($fp); + +} + +?> + + + + + + diff --git a/squid-acl.php b/squid-acl.php new file mode 100644 index 0000000..99f98a6 --- /dev/null +++ b/squid-acl.php @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + +configurazione acl squid + + +"; + } +} + + +if ($errore) { + + echo "Errori rilevati:
".$errore."
". + "questo check puo' essere evitato settando la variabile check_pkg_install=false ". + "in include/cfg-squid.php"; + ""; + + exit; +} + + +if ( !$_REQUEST["step"] ){ + + echo "
"; + + echo "". + "IP abilitati ovunque:

". + "". + "IP NON abilitati:

". + "". + "IP limitati:

". + "". + "Navigazione negata su:

". + ""; + + echo "". + "[ Riscrivi ACL ]". + "". + "

"; +} + +if ( $_REQUEST["step"] == "2" ){ + + + $handle = fopen($good_users_file, "w"); + fwrite($handle,$_REQUEST["good_users"]); + fclose($handle); + + $handle = fopen($bad_users_file, "w"); + fwrite($handle,$_REQUEST["bad_users"]); + fclose($handle); + + $handle = fopen($middle_users_file, "w"); + fwrite($handle,$_REQUEST["middle_users"]); + fclose($handle); + + $handle = fopen($middle_url_file, "w"); + fwrite($handle,$_REQUEST["middle_url"]); + fclose($handle); + + echo "Scrittura Completata. Premi qui
"; + +} + +?> + + + + + + diff --git a/squid-guard.php b/squid-guard.php new file mode 100644 index 0000000..d093695 --- /dev/null +++ b/squid-guard.php @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + +SquidGuard Acl + + +"; + } + + $result = shell_exec("grep squidguard /usr/local/etc/squid.conf "); + if ( $result == "" ) { + $errore .= "- squidguard non e' configurato in squid.conf
"; + } + + + if (is_dir($sguard_liste_locali."_autorizzati") !== true){ + $errore .= "- la directory ".$sguard_liste_locali."_autorizzati e' inesistente
"; + } + + if (is_dir($sguard_liste_locali."_bloccati") !== true){ + $errore .= "- la directory ".$sguard_liste_locali."_bloccati e' inesistente
"; + } + +} + + +if ($errore) { + + echo "Errori rilevati:
".$errore."
". + "questo check puo' essere evitato settando la variabile check_pkg_install=false ". + "in include/cfg-squid.php"; + ""; + + exit; +} + + + + +if ( !$_REQUEST["step"] ){ + + + echo "
"; + + echo "". + "domini abilitati da liste locali:

". + "". + "domini bloccati da liste locali:

". + ""; + + echo "". + "[ Riscrivi ACL ]". + "". + "

"; +} + +if ( $_REQUEST["step"] == "2" ){ + + + $handle = fopen($sguard_auth_file, "w"); + fwrite($handle,$_REQUEST["sguard_auth"]); + fclose($handle); + + $handle = fopen($sguard_bloc_file, "w"); + fwrite($handle,$_REQUEST["sguard_bloc"]); + fclose($handle); + + passthru("/usr/local/bin/sudo ".$sync_sguard_prg, $retval); + + if ($retval != "0"){ + + echo "Execution exited with status code:".$retval; + + } else { + + echo "Scrittura Completata. Premi qui
"; + + } +} + +?> + + + + + + + diff --git a/squid-log.php b/squid-log.php new file mode 100644 index 0000000..2e2bdf3 --- /dev/null +++ b/squid-log.php @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + squid logs + + + +"; + } +} + + +if ($errore) { + + echo "Errori rilevati:
".$errore."
". + "questo check puo' essere evitato settando la variabile check_pkg_install=false ". + "in include/cfg-squid.php"; + ""; + + exit; +} + + + + echo "
". + "Chiave di Ricerca: "; + + echo "  "; + + echo "Periodo: ". + ""; + + echo "  [ Cerca ]". + "
"; + + + + if ($_REQUEST["search_key"]){ + + + echo "Analisi del file: ".$_REQUEST["squid_log_file"]. + " con chiave: ".$_REQUEST["search_key"]; + + echo "". + "Data". + "Indirizzo IP". + "Destinazione"; + + + $cmdstr = $grepbin." ".$_REQUEST["search_key"]." ".$squid_log_dir."/".$_REQUEST["squid_log_file"]; + echo "DEBUG: $cmdstr\n"; + + $fp = popen($cmdstr, 'r'); + + while ($line = fgets($fp, 4096)){ + + preg_match_all("|(.{14}).{7} (.*) .* .* .* (.*) .*$|U",$line,$out, PREG_PATTERN_ORDER); + + echo ""; + echo "".date("d.m.Y - h:i:s",$out[1][0]); + echo "".$out[2][0]; + echo "".htmlentities(substr($out[3][0],0,80))." ..."; + } + } + +?> + + + + + + diff --git a/sudo_cmd/.off/chmod-homedir.sh b/sudo_cmd/.off/chmod-homedir.sh new file mode 100755 index 0000000..5c864ba --- /dev/null +++ b/sudo_cmd/.off/chmod-homedir.sh @@ -0,0 +1,7 @@ +#!/bin/sh + + +# passiamo dalla login per circoscrivere il sudo chmod +HOMEDIR=$(getent passwd $1 | cut -d: -f6) + +chmod $2 ${HOMEDIR} diff --git a/sudo_cmd/.off/mail-sync-fwd.sh b/sudo_cmd/.off/mail-sync-fwd.sh new file mode 100755 index 0000000..31016e0 --- /dev/null +++ b/sudo_cmd/.off/mail-sync-fwd.sh @@ -0,0 +1,22 @@ +#!/bin/sh -x + +# ver.20120623-01 + +. /home/web/default/petar.company/sudo_cmd/tools.cfg + +### Inizio batch +cd ${QUEUEDIR} + +### Creazione local-host-names +cat ${LHN_SRC_TOP} ${LHN_SRC_FILE} > ${LHN_DST_FILE} + +### Creazione virtusertable +cat ${VIRT_SRC_TOP} ${VIRT_SRC_FILE} > ${VIRT_DST_FILE} +cp ${VIRT_DST_FILE} /etc/mail/virtusertable +cp ${VIRT_DST_FILE} ${VIRT_DST_ARCH} + +### Restart servizi +cd /etc/mail +make +make stop +make start diff --git a/sudo_cmd/.off/mail-sync.sh b/sudo_cmd/.off/mail-sync.sh new file mode 100755 index 0000000..2b6efe1 --- /dev/null +++ b/sudo_cmd/.off/mail-sync.sh @@ -0,0 +1,59 @@ +#!/bin/sh -x + +# ver.20120623-01 + +. /home/web/default/petar.company/sudo_cmd/tools.cfg + +### Inizio batch +cd ${QUEUEDIR} + +### Cancellazione utenti, if any +# if [ -f rmuser.queue ]; then +# echo "Parsing rmuser.queue file
" +# chown root:wheel rmuser.queue +# chmod 600 rmuser.queue +# rmuser -v -y -f rmuser.queue +# rm rmuser.queue +#fi + +### Cancellazione utenti + +if [ -f rmuser.queue ]; then + + echo "Found some user(s) to delete" + + while read utente; do + echo " - Deleting ${utente} ... " + /usr/sbin/pw userdel ${utente} -r + rm -r ${HOMEDIR}/${utente} + rm -r /var/mail/${utente} + done < rmuser.queue + + rm rmuser.queue + +fi + + +### Creazione local-host-names +cat ${LHN_SRC_TOP} ${LHN_SRC_FILE} > ${LHN_DST_FILE} + +### Creazione master.passwd e Backup +/usr/sbin/pwd_mkdb ${MAIL_SRC_FILE} + +### Creazione virtusertable +cat ${VIRT_SRC_TOP} ${VIRT_SRC_FILE} > ${VIRT_DST_FILE} +cp ${VIRT_DST_FILE} /etc/mail/virtusertable +cp ${VIRT_DST_FILE} ${VIRT_DST_ARCH} + +### Fixing permessi +cd ${HOMEDIR} +for dir in *; do +chown -R $dir $dir +done + +### Restart servizi +cd /etc/mail +make +make stop +make start + diff --git a/sudo_cmd/.off/mkdir-homedir.sh b/sudo_cmd/.off/mkdir-homedir.sh new file mode 100755 index 0000000..46276e1 --- /dev/null +++ b/sudo_cmd/.off/mkdir-homedir.sh @@ -0,0 +1,7 @@ +#!/bin/sh + + +# passiamo dalla login per circoscrivere il sudo mkdir +HOMEDIR=$(getent passwd $1 | cut -d: -f6) + +mkdir -p ${HOMEDIR} diff --git a/sudo_cmd/.off/readpwd.sh b/sudo_cmd/.off/readpwd.sh new file mode 100755 index 0000000..ec715bb --- /dev/null +++ b/sudo_cmd/.off/readpwd.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +cat /etc/master.passwd diff --git a/sudo_cmd/mng_maillog.sh b/sudo_cmd/mng_maillog.sh new file mode 100755 index 0000000..b8410ec --- /dev/null +++ b/sudo_cmd/mng_maillog.sh @@ -0,0 +1,24 @@ +#!/bin/sh -x + +. /usr/home/web/default/petar.company/cfg_apps/petar/petar.cfg + +ACTION=${1} + +cd ${BASEDIR} + +PATTERN=${2} +MAILLOG=${3} + +if [ ${ACTION} = "STEP1" ] +then + + /usr/bin/zgrep -i ${PATTERN} ${MAILLOG} | cut -f4 -d: | sort -u + +fi + +if [ ${ACTION} = "STEP2" ] +then + + /usr/bin/zgrep -i ${PATTERN} ${MAILLOG} + +fi diff --git a/sudo_cmd/mng_user.sh b/sudo_cmd/mng_user.sh new file mode 100755 index 0000000..0d96329 --- /dev/null +++ b/sudo_cmd/mng_user.sh @@ -0,0 +1,91 @@ +#!/bin/sh -x + +. /usr/home/web/default/petar.company/cfg_apps/petar/petar.cfg + +ACTION=${1} + +OK=" [ OK ]" +KO=" [ KO ]" + +cd ${BASEDIR} + +if [ ${ACTION} = "ADD" ] +then + + USER=${2} + PWD=${3} + SHELL=${4} + HOMEDIR=${5} + EMAIL=${6} + + pw useradd -D -u ${UID} -g ${GID} + pw useradd ${USER} -s ${SHELL} -d ${HOMEDIR}/${USER} -c "${EMAIL}" -m + echo "${PWD}" | pw usermod -n ${USER} -h 0 + +fi + +if [ ${ACTION} = "DEL" ] +then + + USER=${2} + + pw useradd -D -u ${UID} -g ${GID} + pw userdel -r -n ${USER} +fi + +if [ ${ACTION} = "PWD" ] +then + + USER=${2} + PWD=${3} + + pw useradd -D -u ${UID} -g ${GID} + echo "${PWD}" | pw usermod -n ${USER} -h 0 +fi + +if [ ${ACTION} = "SHL" ] +then + + USER=${2} + SHELL=${3} + + pw useradd -D -u ${UID} -g ${GID} + pw usermod -n ${USER} -s ${SHELL} +fi + +# mail-restart +if [ ${ACTION} = "MAL" ] || [ ${ACTION} = "FWD" ] +then + + ( echo -n "cp ${VIRT_FILE} ${VIRT_BAK}" && cp ${VIRT_FILE} ${VIRT_BAK} ) && echo ${OK} || echo ${KO} + ( echo -n "cp ${LHN_FILE} ${LHN_BAK}" && cp ${LHN_FILE} ${LHN_BAK} ) && echo ${OK} || echo ${KO} + echo "" + ( echo -n "cat ${VIRT_TOP} > ${VIRT_FILE}" && cat ${VIRT_TOP} > ${VIRT_FILE} ) && echo ${OK} || echo ${KO} + ( echo -n "cat ${LHN_TOP} > ${LHN_FILE}" && cat ${LHN_TOP} > ${LHN_FILE} ) && echo ${OK} || echo ${KO} + + if [ ${ACTION} = "MAL" ]; + then + QUERY1="select email,login,domain from MAILUSER order by domain;"; + QUERY2="select domain from MAILUSER;" + else + QUERY1="select email,fwdaddr,domain from FWDUSER order by domain;" + QUERY2="select domain from FWDUSER;" + fi + + echo "" + ( echo -n "${QUERY1} > ${VIRT_FILE} " && /usr/local/bin/sqlite3 db/petar.db3 "${QUERY1}" | awk -F '|' 'BEGIN{print "#\n### Petar generated using petar.db3\n#"}{printf "%-30s %s\n", $1, $2 }' >> ${VIRT_FILE} ) && echo ${OK} || echo ${KO} + ( echo -n "${QUERY2} > ${LHN_FILE}" && /usr/local/bin/sqlite3 db/petar.db3 "${QUERY2}" | sort | uniq > ${LHN_FILE} ) && echo ${OK} || echo ${KO} +fi + +# mail-restart +if [ ${ACTION} = "SRV" ] +then + + cd /etc/mail + make && echo ${OK} || echo ${KO} + echo "" + make install && echo ${OK} || echo ${KO} + echo "" + make restart && echo ${OK} || echo ${KO} + +fi diff --git a/sudo_cmd/out/import-email.sql b/sudo_cmd/out/import-email.sql new file mode 100644 index 0000000..c647e6d --- /dev/null +++ b/sudo_cmd/out/import-email.sql @@ -0,0 +1,62 @@ +drop table mailuser; +create table mailuser (uid integer autoincrement primary key,login varchar(20), pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); +insert into mailuser (uid,login) values ('1999','removeme'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('tacquistapace','$1$aOcSY2Jg$4Zr2xwCelWX6TJN.vXxLD0','2000','contab@mitispa.it','/home/mailusers/tacquistapace','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mantonini','$1$Uo82cZLe$Lt7PfmNEpKo7/hKORXWdo1','2000','uff-pers-urgn@mitispa.it','/home/mailusers/mantonini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('labomag2','$1$OImpzfFq$VWkniNms76l7aoHVa7slq1','2000','labomag2@mitispa.it','/home/mailusers/labomag2','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ebegnini','$1$FQI6jqHB$ZduAXkOPtei18TFtt8iwP/','2000','eliseo.begnini@mitispa.it','/home/mailusers/ebegnini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('gbegnini','$1$Y5XOrRUA$5gCfgb87l3XT/B3xrJpTN/','2000','gbegnini@mitispa.it','/home/mailusers/gbegnini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ibonacina','$1$QmkDAUZC$5OzLx75CoGFmaGPMb8ot0/','2000','ibonacina@mitispa.it','/home/mailusers/ibonacina','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('vbonacina','$1$WbIAMsXn$8xJFsPP1Nv2Sl1JcXzjE7/','2000','vbonacina@mitispa.it','/home/mailusers/vbonacina','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('fbaldassarre','$1$oDv0Nrlu$j881yq5lZycPZzLlaYGES.','2000','fbaldassarre@mitispa.it','/home/mailusers/fbaldassarre','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('campionario','$1$rip7WO2w$nwJVIVkGRxekRMkRjhr5I1','2000','campionario@mitispa.it','/home/mailusers/campionario','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('sbrolis','$1$fs4cQoH3$Adqd0TsQK4B5u8jSRU3/r1','2000','maglia@mitispa.it','/home/mailusers/sbrolis','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('vcaldara','$1$V4AdY0qC$mC91AxyVW36XbwSS.NwfE0','2000','virna.caldara@mitispa.it','/home/mailusers/vcaldara','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('acarrara','$1$k0vi7VlV$x9k47oBKUE0C1PIpyo3Zk/','2000','anna.carrara@mitispa.it','/home/mailusers/acarrara','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mgcasali','$1$8atu0EPw$QB6qxrk0NDA6qSJhkLKXT1','2000','mariagrazia.casali@mitispa.it','/home/mailusers/mgcasali','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('sceroni','$1$D5r7bOy2$oESzuxh/3aRpnOmbRrsrs.','2000','simona.ceroni@mitispa.it','/home/mailusers/sceroni','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('lcristini','$1$zC2NaAan$DOu/Uwze6PfuMZso/nCbg.','2000','luca.cristini@mitispa.it','/home/mailusers/lcristini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('lpolli','$1$hs0KOctw$byOUml2Ghv4HcvPYLFv7N1','2000','leonardo.polli@mitispa.it','/home/mailusers/lpolli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('bfagnani','$1$lD.I4cqz$sa/wikO31yim2uFzjfc18.','2000','barbara.fagnani@mitispa.it','/home/mailusers/bfagnani','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('sferri','$1$PAVKG5cO$0RmK1snSfdTIXoatY8NfG0','2000','sandia.ferri@mitispa.it','/home/mailusers/sferri','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('efranchini','$1$.4MRlz4w$aTdzSslVy5Tk2Bi9rOFH60','2000','efranchini@mitispa.it','/home/mailusers/efranchini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('dcarne','$1$DYifuF7t$9lkfQ4xznclBejk4Pv51b1','2000','daniela.carne@mitispa.it','/home/mailusers/dcarne','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ofusi','$1$ngnbD4NY$h7fRpRSmYfJs7GdLLWdbH/','2000','ofusi@mitispa.it','/home/mailusers/ofusi','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mgavazzi','$1$0qf4ZF4B$9cnJm78yrDRTKmBhsjxlH1','2000','spedizioni@mitispa.it','/home/mailusers/mgavazzi','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('pgiassi','$1$1t6tWhVa$snNhVCOfTgHEikn4MceZA.','2000','labfisico@mitispa.it','/home/mailusers/pgiassi','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mgrasselli','$1$upaZCzX4$.HDqlrO7NuYnaMnXEtAYm/','2000','marcello.grasselli@mitispa.it','/home/mailusers/mgrasselli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('llazzari','$1$3WFrim84$JRqcF06nUKb2jEMAn6G/C.','2000','luigi.lazzari@mitispa.it','/home/mailusers/llazzari','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('aleoni','$1$3JYWrfi3$asA1X/5xpEKw4sj9b2rWY0','2000','aleoni@mitispa.it','/home/mailusers/aleoni','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('labomag','$1$FwjRkyVz$272LjIbavBwHdHNfdsHNb/','2000','labomag@mitispa.it','/home/mailusers/labomag','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('emangili','$1$HiXzMJzU$uqcqzImN89JeS0kIbB2fe1','2000','enza.mangili@mitispa.it','/home/mailusers/emangili','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('amasera','$1$tZxK40Bk$D5ecSTXDr6qX51yC5ojcq/','2000','se.ge@mitispa.it','/home/mailusers/amasera','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mlocatelli','$1$ubXwSnRx$OCoslXRjWpdU3bLMiGy2p.','2000','mlocatelli@mitispa.it','/home/mailusers/mlocatelli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('gorsina','$1$gKdQ9p7C$MYtpnLKSX0J8naWhhuJYQ1','2000','gianpiero.orsina@mitispa.it','/home/mailusers/gorsina','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('cosio','$1$6Vq9vlb9$RotsYRLdRoEn7rAHYM33n0','2000','carla.osio@mitispa.it','/home/mailusers/cosio','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('spalamini','$1$XVy9AyWQ$WbKAazUrAw9tSKsDobTpV0','2000','sergio.palamini@mitispa.it','/home/mailusers/spalamini','/bin/tcsh','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('gpassera','$1$zQq7dRz6$Ve7zzqrc/1XBYCGp.Ckru.','2000','gianluigi.passera@mitispa.it','/home/mailusers/gpassera','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('lravizza','$1$aTXZSmz6$mHjMjygdlR4Fz8iMdzFao1','2000','laura.ravizza@mitispa.it','/home/mailusers/lravizza','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('credaelli','$1$SvSGEJhU$7fduQtbbKmUwh5WOeP3sa.','2000','claudio.redaelli@mitispa.it','/home/mailusers/credaelli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('frota','$1$zQhLMULF$VX6E9NS6BhRmptDoghibG/','2000','faustino.rota@mitispa.it','/home/mailusers/frota','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ssalvi','$1$nejxxfZD$zx.RWRZJrRz2.MBH7JIGq.','2000','ssalvi@mitispa.it','/home/mailusers/ssalvi','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('esirtoli','$1$iWk5oA.6$SUHwV9zV.O5dl9Om0Zf9O/','2000','elena.sirtoli@mitispa.it','/home/mailusers/esirtoli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('dspada','$1$2g6qkvaN$JRzbpt4cTfXLk0.dXxucE0','2000','daniela.spada@mitispa.it','/home/mailusers/dspada','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('avitali','$1$hPTkCjEz$Taqr6svNaohDXQ7eh3UgZ0','2000','alessandro.vitali@mitispa.it','/home/mailusers/avitali','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mvitali','$1$iJUdsdUf$F85AvheEQzATITcJdYxfM0','2000','mvitali@mitispa.it','/home/mailusers/mvitali','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mzanardi','$1$cK2Khemi$ES5yXwrXsnTsFbVghpCZP/','2000','ced@mitispa.it','/home/mailusers/mzanardi','/bin/tcsh','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('vzanotti','$1$pRRANIx6$QcY/7lrx8w6oXCnDB2tX90','2000','valeria.zanotti@mitispa.it','/home/mailusers/vzanotti','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('lcampaci','$1$uhZzPlHp$ITwD0S03y4U.iIHkT.VPE0','2000','lucio.campaci@mitispa.it','/home/mailusers/lcampaci','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ljoffrain','$1$hTp.YH3j$eszKN8z0EdFcuUFNLkxsF/','2000','william.joffrain@mitispa.it','/home/mailusers/ljoffrain','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mmagrini','$1$bizp2mjD$fR.RiW8Ohghc23THKaN96/','2000','marco.magrini@mitispa.it','/home/mailusers/mmagrini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('mboffelli','$1$UqABHRcU$JHd31RPj5ARoGAdAd2Lrs1','2000','mboffelli@mitispa.it','/home/mailusers/mboffelli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('icurnis','$1$2BlnM9YP$o7I0OPsgpOly5kghDlBxe/','2000','icurnis@mitispa.it','/home/mailusers/icurnis','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('igervasoni','$1$ZetUCWww$b6dsG8WPxXhupm/X1sVyO1','2000','igervasoni@mitispa.it','/home/mailusers/igervasoni','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('cpagnoncelli','$1$wLrBd8IR$ntHNnleR4gjg4ZfK054tt0','2000','cristian.pagnoncelli@mitispa.it','/home/mailusers/cpagnoncelli','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('eoprandi','$1$SBpaoqbc$OwvlEuevDb3v9/8vnHK1A.','2000','eoprandi@mitispa.it','/home/mailusers/eoprandi','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('rrubis','$1$R29yfeCf$B5z7AzOShq228tm6pgdxJ1','2000','rrubis@mitispa.it','/home/mailusers/rrubis','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('arota','$1$hGBCkBIX$Ihg7lw3L72LLEcmTKaBaQ0','2000','arota@mitispa.it','/home/mailusers/arota','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('prota','$1$ZGLI2Jo2$XJtzXjOfbFosOVzZW54d6/','2000','luigi.rota@mitispa.it','/home/mailusers/prota','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('nserafini','$1$8hgXYjnM$/FUx.dEJzTo0qNUhW5pQy1','2000','nserafini@mitispa.it','/home/mailusers/nserafini','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ptagliabue','$1$IiOHh5ht$FtmImijMhNJnyj92VZY0X/','2000','paolo.tagliabue@mitispa.it','/home/mailusers/ptagliabue','/usr/sbin/nologin','mitispa.it'); +insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ('ezanoni','$1$qkR02j8G$/XCn4Mvjuyaftp7yfnUZH0','2000','ezanoni@mitispa.it','/home/mailusers/ezanoni','/usr/sbin/nologin','mitispa.it'); +delete from mailuser where uid = '1999'; diff --git a/sudo_cmd/petar.company.sudoers b/sudo_cmd/petar.company.sudoers new file mode 100644 index 0000000..f5554fa --- /dev/null +++ b/sudo_cmd/petar.company.sudoers @@ -0,0 +1,9 @@ +www ALL=(ALL) NOPASSWD: /home/web/default/petar.company/sudo_cmd/mng_user.sh +www ALL=(ALL) NOPASSWD: /home/web/default/petar.company/sudo_cmd/mng_maillog.sh + +www ALL=(ALL) NOPASSWD: /home/web/default/petar.company/sudo_cmd/radius-sync.sh +www ALL=(ALL) NOPASSWD: /home/web/default/petar.company/sudo_cmd/squid-sync.sh + +www ALL=(ALL) NOPASSWD: /usr/bin/mailq * +www ALL=(ALL) NOPASSWD: /bin/cat /var/spool/mqueue/* +www ALL=(ALL) NOPASSWD: /bin/rm /var/spool/mqueue/* diff --git a/sudo_cmd/qtool.pl b/sudo_cmd/qtool.pl new file mode 100755 index 0000000..c2a67f8 --- /dev/null +++ b/sudo_cmd/qtool.pl @@ -0,0 +1,1324 @@ +#!/usr/bin/env perl +## +## Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers. +## All rights reserved. +## +## $Id: qtool.pl,v 8.31 2010/11/10 19:11:54 ca Exp $ +## +use strict; +use File::Basename; +use File::Copy; +use File::Spec; +use Fcntl qw(:flock :DEFAULT); +use Getopt::Std; + +## +## QTOOL +## This program is for moving files between sendmail queues. It is +## pretty similar to just moving the files manually, but it locks the files +## the same way sendmail does to prevent problems. +## +## NOTICE: Do not use this program to move queue files around +## if you use sendmail 8.12 and multiple queue groups. It may interfere +## with sendmail's internal queue group selection strategy and can cause +## mail to be not delivered. +## +## The syntax is the reverse of mv (ie. the target argument comes +## first). This lets you pick the files you want to move using find and +## xargs. +## +## Since you cannot delete queues while sendmail is running, QTOOL +## assumes that when you specify a directory as a source, you mean that you +## want all of the queue files within that directory moved, not the +## directory itself. +## +## There is a mechanism for adding conditionals for moving the files. +## Just create an Object with a check_move(source, dest) method and add it +## to the $conditions object. See the handling of the '-s' option for an +## example. +## + +## +## OPTION NOTES +## +## The -e option: +## The -e option takes any valid perl expression and evaluates it +## using the eval() function. Inside the expression the variable +## '$msg' is bound to the ControlFile object for the current source +## queue message. This lets you check for any value in the message +## headers or the control file. Here's an example: +## +## ./qtool.pl -e '$msg{num_delivery_attempts} >= 2' /q1 /q2 +## +## This would move any queue files whose number of delivery attempts +## is greater than or equal to 2 from the queue 'q2' to the queue 'q1'. +## +## See the function ControlFile::parse for a list of available +## variables. +## + +my %opts; +my %sources; +my $dst_name; +my $destination; +my $source_name; +my $source; +my $result; +my $action; +my $new_condition; +my $qprefix; +my $queuegroups = 0; +my $conditions = new Compound(); +my $fcntl_struct = 's H60'; +my $fcntl_structlockp = pack($fcntl_struct, Fcntl::F_WRLCK, + "000000000000000000000000000000000000000000000000000000000000"); +my $fcntl_structunlockp = pack($fcntl_struct, Fcntl::F_UNLCK, + "000000000000000000000000000000000000000000000000000000000000"); +my $lock_both = -1; + +Getopt::Std::getopts('bC:de:Qs:', \%opts); + +sub move_action +{ + my $source = shift; + my $destination = shift; + + $result = $destination->add($source); + if ($result) + { + print("$result.\n"); + } +} + +sub delete_action +{ + my $source = shift; + + return $source->delete(); +} + +sub bounce_action +{ + my $source = shift; + + return $source->bounce(); +} + +$action = \&move_action; +if (defined $opts{d}) +{ + $action = \&delete_action; +} +elsif (defined $opts{b}) +{ + $action = \&bounce_action; +} + +if (defined $opts{s}) +{ + $new_condition = new OlderThan($opts{s}); + $conditions->add($new_condition); +} + +if (defined $opts{e}) +{ + $new_condition = new Eval($opts{e}); + $conditions->add($new_condition); +} + +if (defined $opts{Q}) +{ + $qprefix = "hf"; +} +else +{ + $qprefix = "qf"; +} + +if ($action == \&move_action) +{ + $dst_name = shift(@ARGV); + if (!-d $dst_name) + { + print("The destination '$dst_name' must be an existing " . + "directory.\n"); + usage(); + exit; + } + $destination = new Queue($dst_name); +} + +# determine queue_root by reading config file +my $queue_root; +{ + my $config_file = "/etc/mail/sendmail.cf"; + if (defined $opts{C}) + { + $config_file = $opts{C}; + } + + my $line; + open(CONFIG_FILE, $config_file) or die "$config_file: $!"; + + ## Notice: we can only break out of this loop (using last) + ## when both entries (queue directory and group group) + ## have been found. + while ($line = ) + { + chomp $line; + if ($line =~ m/^O QueueDirectory=(.*)/) + { + $queue_root = $1; + if ($queue_root =~ m/(.*)\/[^\/]+\*$/) + { + $queue_root = $1; + } + # found also queue groups? + if ($queuegroups) + { + last; + } + } + if ($line =~ m/^Q.*/) + { + $queuegroups = 1; + if ($action == \&move_action) + { + print("WARNING: moving queue files around " . + "when queue groups are used may\n" . + "result in undelivered mail!\n"); + } + # found also queue directory? + if (defined $queue_root) + { + last; + } + } + } + close(CONFIG_FILE); + if (!defined $queue_root) + { + die "QueueDirectory option not defined in $config_file"; + } +} + +while (@ARGV) +{ + $source_name = shift(@ARGV); + $result = add_source(\%sources, $source_name); + if ($result) + { + print("$result.\n"); + exit; + } +} + +if (keys(%sources) == 0) +{ + exit; +} + +while (($source_name, $source) = each(%sources)) +{ + $result = $conditions->check_move($source, $destination); + if ($result) + { + $result = &{$action}($source, $destination); + if ($result) + { + print("$result\n"); + } + } +} + +sub usage +{ + print("Usage:\t$0 [options] directory source ...\n"); + print("\t$0 [-Q][-d|-b] source ...\n"); + print("Options:\n"); + print("\t-b\t\tBounce the messages specified by source.\n"); + print("\t-C configfile\tSpecify sendmail config file.\n"); + print("\t-d\t\tDelete the messages specified by source.\n"); + print("\t-e [perl expression]\n"); + print("\t\t\tMove only messages for which perl expression\n"); + print("\t\t\treturns true.\n"); + print("\t-Q\t\tOperate on quarantined files.\n"); + print("\t-s [seconds]\tMove only messages whose queue file is older\n"); + print("\t\t\tthan seconds.\n"); +} + +## +## ADD_SOURCE -- Adds a source to the source hash. +## +## Determines whether source is a file, directory, or id. Then it +## creates a QueuedMessage or Queue for that source and adds it to the +## list. +## +## Parameters: +## sources -- A hash that contains all of the sources. +## source_name -- The name of the source to add +## +## Returns: +## error_string -- Undef if ok. Error string otherwise. +## +## Notes: +## If a new source comes in with the same ID as a previous +## source, the previous source gets overwritten in the sources +## hash. This lets the user specify things like * and it still +## works nicely. +## + +sub add_source +{ + my $sources = shift; + my $source_name = shift; + my $source_base_name; + my $source_dir_name; + my $data_dir_name; + my $source_id; + my $source_prefix; + my $queued_message; + my $queue; + my $result; + + ($source_base_name, $source_dir_name) = File::Basename::fileparse($source_name); + $data_dir_name = $source_dir_name; + + $source_prefix = substr($source_base_name, 0, 2); + if (!-d $source_name && $source_prefix ne $qprefix && + $source_prefix ne 'df') + { + $source_base_name = "$qprefix$source_base_name"; + $source_name = File::Spec->catfile("$source_dir_name", + "$source_base_name"); + } + $source_id = substr($source_base_name, 2); + + if (!-e $source_name) + { + $source_name = File::Spec->catfile("$source_dir_name", "qf", + "$qprefix$source_id"); + if (!-e $source_name) + { + return "'$source_name' does not exist"; + } + $data_dir_name = File::Spec->catfile("$source_dir_name", "df"); + if (!-d $data_dir_name) + { + $data_dir_name = $source_dir_name; + } + $source_dir_name = File::Spec->catfile("$source_dir_name", + "qf"); + } + + if (-f $source_name) + { + $queued_message = new QueuedMessage($source_dir_name, + $source_id, + $data_dir_name); + $sources->{$source_id} = $queued_message; + return undef; + } + + if (!-d $source_name) + { + return "'$source_name' is not a plain file or a directory"; + } + + $queue = new Queue($source_name); + $result = $queue->read(); + if ($result) + { + return $result; + } + + while (($source_id, $queued_message) = each(%{$queue->{files}})) + { + $sources->{$source_id} = $queued_message; + } + + return undef; +} + +## +## LOCK_FILE -- Opens and then locks a file. +## +## Opens a file for read/write and uses flock to obtain a lock on the +## file. The flock is Perl's flock which defaults to flock on systems +## that support it. On systems without flock it falls back to fcntl +## locking. This script will also call fcntl explicitly if flock +## uses BSD semantics (i.e. if both flock() and fcntl() can successfully +## lock the file at the same time) +## +## Parameters: +## file_name -- The name of the file to open and lock. +## +## Returns: +## (file_handle, error_string) -- If everything works then +## file_handle is a reference to a file handle and +## error_string is undef. If there is a problem then +## file_handle is undef and error_string is a string +## explaining the problem. +## + +sub lock_file +{ + my $file_name = shift; + my $result; + + if ($lock_both == -1) + { + if (open(DEVNULL, '>/dev/null')) + { + my $flock_status = flock(DEVNULL, Fcntl::LOCK_EX | Fcntl::LOCK_NB); + my $fcntl_status = fcntl (DEVNULL, Fcntl::F_SETLK, $fcntl_structlockp); + close(DEVNULL); + + $lock_both = ($flock_status && $fcntl_status); + } + else + { + # Couldn't open /dev/null. Windows system? + $lock_both = 0; + } + } + + + $result = sysopen(FILE_TO_LOCK, $file_name, Fcntl::O_RDWR); + if (!$result) + { + return (undef, "Unable to open '$file_name': $!"); + } + + $result = flock(FILE_TO_LOCK, Fcntl::LOCK_EX | Fcntl::LOCK_NB); + if (!$result) + { + return (undef, "Could not obtain lock on '$file_name': $!"); + } + + if ($lock_both) + { + my $result2 = fcntl (FILE_TO_LOCK, Fcntl::F_SETLK, $fcntl_structlockp); + if (!$result2) + { + return (undef, "Could not obtain fcntl lock on '$file_name': $!"); + } + } + + return (\*FILE_TO_LOCK, undef); +} + +## +## UNLOCK_FILE -- Unlocks a file. +## +## Unlocks a file using Perl's flock. +## +## Parameters: +## file -- A file handle. +## +## Returns: +## error_string -- If undef then no problem. Otherwise it is a +## string that explains problem. +## + +sub unlock_file +{ + my $file = shift; + my $result; + + $result = flock($file, Fcntl::LOCK_UN); + if (!$result) + { + return "Unlock failed on '$result': $!"; + } + if ($lock_both) + { + my $result2 = fcntl ($file, Fcntl::F_SETLK, $fcntl_structunlockp); + if (!$result2) + { + return (undef, "Fcntl unlock failed on '$result': $!"); + } + } + + return undef; +} + +## +## MOVE_FILE -- Moves a file. +## +## Moves a file. +## +## Parameters: +## src_name -- The name of the file to be move. +## dst_name -- The name of the place to move it to. +## +## Returns: +## error_string -- If undef then no problem. Otherwise it is a +## string that explains problem. +## + +sub move_file +{ + my $src_name = shift; + my $dst_name = shift; + my $result; + + $result = File::Copy::move($src_name, $dst_name); + if (!$result) + { + return "File move from '$src_name' to '$dst_name' failed: $!"; + } + + return undef; +} + + +## +## CONTROL_FILE - Represents a sendmail queue control file. +## +## This object represents represents a sendmail queue control file. +## It can parse and lock its file. +## + + +package ControlFile; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + my $queue_dir = shift; + $self->{id} = shift; + + $self->{file_name} = $queue_dir . '/' . $qprefix . $self->{id}; + $self->{headers} = {}; +} + +## +## PARSE - Parses the control file. +## +## Parses the control file. It just sticks each entry into a hash. +## If a key has more than one entry, then it points to a list of +## entries. +## + +sub parse +{ + my $self = shift; + if ($self->{parsed}) + { + return; + } + my %parse_table = + ( + 'A' => 'auth', + 'B' => 'body_type', + 'C' => 'controlling_user', + 'D' => 'data_file_name', + 'd' => 'data_file_directory', + 'E' => 'error_recipient', + 'F' => 'flags', + 'H' => 'parse_header', + 'I' => 'inode_number', + 'K' => 'next_delivery_time', + 'L' => 'content-length', + 'M' => 'message', + 'N' => 'num_delivery_attempts', + 'P' => 'priority', + 'Q' => 'original_recipient', + 'R' => 'recipient', + 'q' => 'quarantine_reason', + 'r' => 'final_recipient', + 'S' => 'sender', + 'T' => 'creation_time', + 'V' => 'version', + 'Y' => 'current_delay', + 'Z' => 'envid', + '!' => 'deliver_by', + '$' => 'macro' + ); + my $line; + my $line_type; + my $line_value; + my $member_name; + my $member; + my $last_type; + + open(CONTROL_FILE, "$self->{file_name}"); + while ($line = ) + { + $line_type = substr($line, 0, 1); + if ($line_type eq "\t" && $last_type eq 'H') + { + $line_type = 'H'; + $line_value = $line; + } + else + { + $line_value = substr($line, 1); + } + $member_name = $parse_table{$line_type}; + $last_type = $line_type; + if (!$member_name) + { + $member_name = 'unknown'; + } + if ($self->can($member_name)) + { + $self->$member_name($line_value); + } + $member = $self->{$member_name}; + if (!$member) + { + $self->{$member_name} = $line_value; + next; + } + if (ref($member) eq 'ARRAY') + { + push(@{$member}, $line_value); + next; + } + $self->{$member_name} = [$member, $line_value]; + } + close(CONTROL_FILE); + + $self->{parsed} = 1; +} + +sub parse_header +{ + my $self = shift; + my $line = shift; + my $headers = $self->{headers}; + my $last_header = $self->{last_header}; + my $header_name; + my $header_value; + my $first_char; + + $first_char = substr($line, 0, 1); + if ($first_char eq "?") + { + $line = (split(/\?/, $line,3))[2]; + } + elsif ($first_char eq "\t") + { + if (ref($headers->{$last_header}) eq 'ARRAY') + { + $headers->{$last_header}[-1] = + $headers->{$last_header}[-1] . $line; + } + else + { + $headers->{$last_header} = $headers->{$last_header} . + $line; + } + return; + } + ($header_name, $header_value) = split(/:/, $line, 2); + $self->{last_header} = $header_name; + if (exists $headers->{$header_name}) + { + $headers->{$header_name} = [$headers->{$header_name}, + $header_value]; + } + else + { + $headers->{$header_name} = $header_value; + } +} + +sub is_locked +{ + my $self = shift; + + return (defined $self->{lock_handle}); +} + +sub lock +{ + my $self = shift; + my $lock_handle; + my $result; + + if ($self->is_locked()) + { + # Already locked + return undef; + } + + ($lock_handle, $result) = ::lock_file($self->{file_name}); + if (!$lock_handle) + { + return $result; + } + + $self->{lock_handle} = $lock_handle; + + return undef; +} + +sub unlock +{ + my $self = shift; + my $result; + + if (!$self->is_locked()) + { + # Not locked + return undef; + } + + $result = ::unlock_file($self->{lock_handle}); + + $self->{lock_handle} = undef; + + return $result; +} + +sub do_stat +{ + my $self = shift; + my $result; + my @result; + + $result = open(QUEUE_FILE, $self->{file_name}); + if (!$result) + { + return "Unable to open '$self->{file_name}': $!"; + } + @result = stat(QUEUE_FILE); + if (!@result) + { + return "Unable to stat '$self->{file_name}': $!"; + } + $self->{control_size} = $result[7]; + $self->{control_last_mod_time} = $result[9]; +} + +sub DESTROY +{ + my $self = shift; + + $self->unlock(); +} + +sub delete +{ + my $self = shift; + my $result; + + $result = unlink($self->{file_name}); + if (!$result) + { + return "Unable to delete $self->{file_name}: $!"; + } + return undef; +} + + +## +## DATA_FILE - Represents a sendmail queue data file. +## +## This object represents represents a sendmail queue data file. +## It is really just a place-holder. +## + +package DataFile; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + my $data_dir = shift; + $self->{id} = shift; + my $control_file = shift; + + $self->{file_name} = $data_dir . '/df' . $self->{id}; + return if -e $self->{file_name}; + $control_file->parse(); + return if !defined $control_file->{data_file_directory}; + $data_dir = $queue_root . '/' . $control_file->{data_file_directory}; + chomp $data_dir; + if (-d ($data_dir . '/df')) + { + $data_dir .= '/df'; + } + $self->{file_name} = $data_dir . '/df' . $self->{id}; +} + +sub do_stat +{ + my $self = shift; + my $result; + my @result; + + $result = open(QUEUE_FILE, $self->{file_name}); + if (!$result) + { + return "Unable to open '$self->{file_name}': $!"; + } + @result = stat(QUEUE_FILE); + if (!@result) + { + return "Unable to stat '$self->{file_name}': $!"; + } + $self->{body_size} = $result[7]; + $self->{body_last_mod_time} = $result[9]; +} + +sub delete +{ + my $self = shift; + my $result; + + $result = unlink($self->{file_name}); + if (!$result) + { + return "Unable to delete $self->{file_name}: $!"; + } + return undef; +} + + +## +## QUEUED_MESSAGE - Represents a queued sendmail message. +## +## This keeps track of the files that make up a queued sendmail +## message. +## Currently it has 'control_file' and 'data_file' as members. +## +## You can tie it to a fetch only hash using tie. You need to +## pass a reference to a QueuedMessage as the third argument +## to tie. +## + +package QueuedMessage; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + my $queue_dir = shift; + my $id = shift; + my $data_dir = shift; + + $self->{id} = $id; + $self->{control_file} = new ControlFile($queue_dir, $id); + if (!$data_dir) + { + $data_dir = $queue_dir; + } + $self->{data_file} = new DataFile($data_dir, $id, $self->{control_file}); +} + +sub last_modified_time +{ + my $self = shift; + my @result; + @result = stat($self->{data_file}->{file_name}); + return $result[9]; +} + +sub TIEHASH +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = shift; + return $self; +} + +sub FETCH +{ + my $self = shift; + my $key = shift; + + if (exists $self->{control_file}->{$key}) + { + return $self->{control_file}->{$key}; + } + if (exists $self->{data_file}->{$key}) + { + return $self->{data_file}->{$key}; + } + + return undef; +} + +sub lock +{ + my $self = shift; + + return $self->{control_file}->lock(); +} + +sub unlock +{ + my $self = shift; + + return $self->{control_file}->unlock(); +} + +sub move +{ + my $self = shift; + my $destination = shift; + my $df_dest; + my $qf_dest; + my $result; + + $result = $self->lock(); + if ($result) + { + return $result; + } + + $qf_dest = File::Spec->catfile($destination, "qf"); + if (-d $qf_dest) + { + $df_dest = File::Spec->catfile($destination, "df"); + if (!-d $df_dest) + { + $df_dest = $destination; + } + } + else + { + $qf_dest = $destination; + $df_dest = $destination; + } + + if (-e File::Spec->catfile($qf_dest, "$qprefix$self->{id}")) + { + $result = "There is already a queued message with id '$self->{id}' in '$destination'"; + } + + if (!$result) + { + $result = ::move_file($self->{data_file}->{file_name}, + $df_dest); + } + + if (!$result) + { + $result = ::move_file($self->{control_file}->{file_name}, + $qf_dest); + } + + $self->unlock(); + + return $result; +} + +sub parse +{ + my $self = shift; + + return $self->{control_file}->parse(); +} + +sub do_stat +{ + my $self = shift; + + $self->{control_file}->do_stat(); + $self->{data_file}->do_stat(); +} + +sub setup_vars +{ + my $self = shift; + + $self->parse(); + $self->do_stat(); +} + +sub delete +{ + my $self = shift; + my $result; + + $result = $self->{control_file}->delete(); + if ($result) + { + return $result; + } + $result = $self->{data_file}->delete(); + if ($result) + { + return $result; + } + + return undef; +} + +sub bounce +{ + my $self = shift; + my $command; + + $command = "sendmail -qI$self->{id} -O Timeout.queuereturn=now"; +# print("$command\n"); + system($command); +} + +## +## QUEUE - Represents a queued sendmail queue. +## +## This manages all of the messages in a queue. +## + +package Queue; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + + $self->{queue_dir} = shift; + $self->{files} = {}; +} + +## +## READ - Loads the queue with all of the objects that reside in it. +## +## This reads the queue's directory and creates QueuedMessage objects +## for every file in the queue that starts with 'qf' or 'hf' +## (depending on the -Q option). +## + +sub read +{ + my $self = shift; + my @control_files; + my $queued_message; + my $file_name; + my $id; + my $result; + my $control_dir; + my $data_dir; + + $control_dir = File::Spec->catfile($self->{queue_dir}, 'qf'); + + if (-e $control_dir) + { + $data_dir = File::Spec->catfile($self->{queue_dir}, 'df'); + if (!-e $data_dir) + { + $data_dir = $self->{queue_dir}; + } + } + else + { + $data_dir = $self->{queue_dir}; + $control_dir = $self->{queue_dir}; + } + + $result = opendir(QUEUE_DIR, $control_dir); + if (!$result) + { + return "Unable to open directory '$control_dir'"; + } + + @control_files = grep { /^$qprefix.*/ && -f "$control_dir/$_" } readdir(QUEUE_DIR); + closedir(QUEUE_DIR); + foreach $file_name (@control_files) + { + $id = substr($file_name, 2); + $queued_message = new QueuedMessage($control_dir, $id, + $data_dir); + $self->{files}->{$id} = $queued_message; + } + + return undef; +} + + +## +## ADD_QUEUED_MESSAGE - Adds a QueuedMessage to this Queue. +## +## Adds the QueuedMessage object to the hash and moves the files +## associated with the QueuedMessage to this Queue's directory. +## + +sub add_queued_message +{ + my $self = shift; + my $queued_message = shift; + my $result; + + $result = $queued_message->move($self->{queue_dir}); + if ($result) + { + return $result; + } + + $self->{files}->{$queued_message->{id}} = $queued_message; + + return $result; +} + +## +## ADD_QUEUE - Adds another Queue's QueuedMessages to this Queue. +## +## Adds all of the QueuedMessage objects in the passed in queue +## to this queue. +## + +sub add_queue +{ + my $self = shift; + my $queue = shift; + my $id; + my $queued_message; + my $result; + + while (($id, $queued_message) = each %{$queue->{files}}) + { + $result = $self->add_queued_message($queued_message); + if ($result) + { + print("$result.\n"); + } + } +} + +## +## ADD - Adds an item to this queue. +## +## Adds either a Queue or a QueuedMessage to this Queue. +## + +sub add +{ + my $self = shift; + my $source = shift; + my $type_name; + my $result; + + $type_name = ref($source); + + if ($type_name eq "QueuedMessage") + { + return $self->add_queued_message($source); + } + + if ($type_name eq "Queue") + { + return $self->add_queue($source); + } + + return "Queue does not know how to add a '$type_name'" +} + +sub delete +{ + my $self = shift; + my $id; + my $queued_message; + + while (($id, $queued_message) = each %{$self->{files}}) + { + $result = $queued_message->delete(); + if ($result) + { + print("$result.\n"); + } + } +} + +sub bounce +{ + my $self = shift; + my $id; + my $queued_message; + + while (($id, $queued_message) = each %{$self->{files}}) + { + $result = $queued_message->bounce(); + if ($result) + { + print("$result.\n"); + } + } +} + +## +## Condition Class +## +## This next section is for any class that has an interface called +## check_move(source, dest). Each class represents some condition to +## check for to determine whether we should move the file from +## source to dest. +## + + +## +## OlderThan +## +## This Condition Class checks the modification time of the +## source file and returns true if the file's modification time is +## older than the number of seconds the class was initialized with. +## + +package OlderThan; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + + $self->{age_in_seconds} = shift; +} + +sub check_move +{ + my $self = shift; + my $source = shift; + + if ((time() - $source->last_modified_time()) > $self->{age_in_seconds}) + { + return 1; + } + + return 0; +} + +## +## Compound +## +## Takes a list of Move Condition Classes. Check_move returns true +## if every Condition Class in the list's check_move function returns +## true. +## + +package Compound; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + + $self->{condition_list} = []; +} + +sub add +{ + my $self = shift; + my $new_condition = shift; + + push(@{$self->{condition_list}}, $new_condition); +} + +sub check_move +{ + my $self = shift; + my $source = shift; + my $dest = shift; + my $condition; + my $result; + + foreach $condition (@{$self->{condition_list}}) + { + if (!$condition->check_move($source, $dest)) + { + return 0; + } + } + + return 1; +} + +## +## Eval +## +## Takes a perl expression and evaluates it. The ControlFile object +## for the source QueuedMessage is available through the name '$msg'. +## + +package Eval; + +sub new +{ + my $this = shift; + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize(@_); + return $self; +} + +sub initialize +{ + my $self = shift; + + $self->{expression} = shift; +} + +sub check_move +{ + my $self = shift; + my $source = shift; + my $dest = shift; + my $result; + my %msg; + + $source->setup_vars(); + tie(%msg, 'QueuedMessage', $source); + $result = eval($self->{expression}); + + return $result; +} diff --git a/sudo_cmd/radius-sync.sh b/sudo_cmd/radius-sync.sh new file mode 100755 index 0000000..d4c33b8 --- /dev/null +++ b/sudo_cmd/radius-sync.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +# ver.20070502-01 + +DATA=`/bin/date "+%Y%m%d%H%M%S"`; +BASEDIR="/home/web/admin.consiagnet.it/www/petar"; +TOOLDIR=`pwd`; +RADIUS_QUEUEDIR="${BASEDIR}/queue"; +RADIUS_ETC_DIR="/usr/local/etc/raddb"; +RADIUS_SRC_USER="users.queue"; +RADIUS_DST_USER="users"; + + +cd ${RADIUS_QUEUEDIR} + +if [ -f ${RADIUS_ETC_DIR}/${RADIUS_DST_USER} ]; then + cp ${RADIUS_ETC_DIR}/${RADIUS_DST_USER} ${RADIUS_ETC_DIR}/${RADIUS_DST_USER}.${DATA}.bak; +fi + +cp ${RADIUS_QUEUEDIR}/${RADIUS_SRC_USER} ${RADIUS_ETC_DIR}/${RADIUS_DST_USER}; + +/usr/bin/killall -hup radiusd diff --git a/sudo_cmd/squid-sync.sh b/sudo_cmd/squid-sync.sh new file mode 100755 index 0000000..383a712 --- /dev/null +++ b/sudo_cmd/squid-sync.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# ver.20091116-01 + +DBASEDIR="/var/db/squidGuard"; +AUTH="${DBASEDIR}/liste_locali_autorizzati/domains"; +BLOC="${DBASEDIR}/liste_locali_bloccati/domains"; + +SGUARD="/usr/local/bin/squidGuard -C " + +/usr/local/bin/squidGuard -C ${AUTH} +/usr/local/bin/squidGuard -C ${BLOC} +/usr/local/sbin/squid -k reconfigure diff --git a/sudo_cmd/tools.cfg b/sudo_cmd/tools.cfg new file mode 100644 index 0000000..3d76c6c --- /dev/null +++ b/sudo_cmd/tools.cfg @@ -0,0 +1,27 @@ +BASEDIR="/home/web/default/petar.company"; +# BASEDIR=`pwd`; +DATA=`/bin/date "+%Y%m%d%H%M%S"`; + +### mail-sync +QUEUEDIR=${BASEDIR}"/queue"; +HOMEDIR="/home/mailusers" + +MAIL_SRC_TOP=${QUEUEDIR}"/defaults/top.passwd"; +MAIL_SRC_FILE=${QUEUEDIR}"/master.passwd.queue"; +MAIL_DST_FILE=${QUEUEDIR}"/master.passwd"; +MAIL_DST_ARCH=${QUEUEDIR}"/archives/master.passwd".${DATA}; + +VIRT_SRC_TOP=${QUEUEDIR}"/defaults/top.virtusertable"; +VIRT_SRC_FILE=${QUEUEDIR}"/virtusertable.queue"; +VIRT_DST_FILE=${QUEUEDIR}"/virtusertable"; +VIRT_DST_ARCH=${QUEUEDIR}"/archives/virtusertable".${DATA}; + +LHN_SRC_TOP=${QUEUEDIR}"/defaults/top.localhostnames"; +LHN_SRC_FILE=${QUEUEDIR}"/localhostnames.queue"; +LHN_DST_FILE="/etc/mail/local-host-names"; + +### radius-sync +RADIUS_QUEUEDIR="${BASEDIR}/queue"; +RADIUS_ETC_DIR="/usr/local/etc/raddb"; +RADIUS_SRC_USER="users.queue"; +RADIUS_DST_USER="users"; diff --git a/tools-net.php b/tools-net.php new file mode 100644 index 0000000..343a6f3 --- /dev/null +++ b/tools-net.php @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + Net Tools + + + +
METHOD=POST> + Comando: +   + +   Host/Dominio: +   + +   Flags Opz.: +   + +    +   + + +
+ +"; + while ($line = fgets($fp, 4096)){ + echo $line; + } + echo "
"; + pclose($fp); +} + +?> + + + + + + diff --git a/tools/init_system.sh b/tools/init_system.sh new file mode 100755 index 0000000..56beb7b --- /dev/null +++ b/tools/init_system.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +clear + +echo "Inizializzo database ? " +echo "L'operazione annullera' tutti i records presenti" +echo "" +echo "Premi invio per continuare o CTRL+C per terminare" + +read dummy + +echo -n "Zeroing DB ... " +# cat ../db/init-tables.sql | sqlite3 ../db/petar.db3 +cp ../db/empty.db3 ../db/petar.db3 +echo " [done] " +echo "" + +echo -n "Removing existing queues ... " +rm -f ../queue/*.* +rm -f ../queue/archives/*.* +echo " [done] " +echo "" diff --git a/tools/mail-fromlist.pl b/tools/mail-fromlist.pl new file mode 100755 index 0000000..c64cbb1 --- /dev/null +++ b/tools/mail-fromlist.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl +# SQL STATEMENT: +# create table FWDUSER (email varchar(100) primary key, fwdaddr varchar(100), domain varchar(100)); +# cat import-email.sql | sqlite3 petar.db3 + +if (@ARGV[0] eq ""){ + print "Usage: ";\ + print "$0 virtusertable\n"; + exit 5 ; +} + +open (IN, "<@ARGV[0]") or die "Error opening @ARGV[0]" ; +open (OUT, ">mail-fromlist.sh"); +print OUT "#!/bin/sh\n"; +print OUT "\n"; + +while ($line = ){ + + chomp $line; + if ($line =~ ( /^\s*$/ ) || $line =~ (/^#.*$/)) { + + print "- Ignoring .... linea bianca o commento\n"; + + } else { + + print "+ Processing .. ".$line."\n"; + ($email,$fwdaddr) = split (" ",$line); + ($login,$domain) = split ("@",$email); + + $email = lc($email); + $fwdaddr = lc($fwdaddr); + $domain = lc($domain); + + # print OUT "cat /home/agraziani/testo-mail.txt | mail -v -s Cambiamento_Email_Centria $email\n"; + + } + +} diff --git a/tools/pls.pl b/tools/pls.pl new file mode 100755 index 0000000..9eb6ce9 --- /dev/null +++ b/tools/pls.pl @@ -0,0 +1,50 @@ +#!/usr/bin/perl + +$proxylogfile= "/usr/local/squid/logs/access.log"; +$logdir= "/home/web/default/petar.company/stats/logs/"; +$baseoutdir= "/home/web/default/petar.company/stats/logs/"; +$configfile= "/home/web/default/petar.company/cfg_apps/webalizer/webalizer-squid.conf"; +$webalizer= "/usr/local/bin/webalizer"; + +$nruseragent="2"; +$topsites="300"; +$topurl="300"; + +# Split dei logs del proxy in logs dei singoli hosts. +open (IN, $proxylogfile) or die "$0 - Can't open proxylog $proxylogfile: $!"; +while (chomp($line=)){ + ($f1, $f2, $ip, $f4)=split(" ",$line); + open(OUT,">>$logdir/".$ip."-access.log") or die "$0 - Can't open create file ".$logdir.$ip."-access.log: $!"; + print OUT $line."\n"; + close(OUT); +} +close (IN); + +# Creazione pagine statistiche singoli hosts +chdir($logdir) or die "$0 - Can't open dir $logdir: $!"; +foreach $file (<*.log>) { + $hostname=substr($file,0,-11); + $reporttitle = "Uso Proxy da parte di "; + $outputdir=$baseoutdir.$hostname; + mkdir($baseoutdir.$hostname, 0777) if (! -d $baseoutdir.$hostname); + system("$webalizer -Q -c '$configfile' -n '$hostname' -o '$outputdir' -t '$reporttitle' -A '$nruseragent' -S '$topsites' -U '$topurl' -F squid $logdir$file"); + + unlink($logdir.$file); +} + +# Creazione File index.html +open(OUT,">$logdir/index.html") or die "$0 - Can't create file ".$logdir."index.html: $!"; +print OUT ""; +print OUT ""; +print OUT "Statistiche d'uso dei seguenti hosts:"; +print OUT "
    "; + +foreach $file (<*>) { + next if (!-d $file || $file =~ /^\.\.?$/ || substr($file,0,10) != "192.168.50" ); + print OUT "
  • $file"; + +} +print OUT "
"; +close(OUT); +# The end + diff --git a/tools/sendmail_stats.pl b/tools/sendmail_stats.pl new file mode 100755 index 0000000..f193e47 --- /dev/null +++ b/tools/sendmail_stats.pl @@ -0,0 +1,310 @@ +#!/usr/local/bin/perl + +# works with perl 4 + +# sendmail_stats Version 0.09 +# (c) 2000-2002 Jeremy C. Reed +# this is free, but use at your own risk + +## still needs a lot of work; it is probably only 10 percent finished +## and about 90 percent of this code needs to be rewritten. + +# use like in your crontab: +#30 5 * * * nobody /usr/contrib/bin/gunzip -c /var/log/maillog.0.gz |\ +# /usr/local/bin/sendmail_stats | /usr/bin/mail -s "sendmail stats" postmaster + +#for appending "@" and host name +$default_hostname = 'out.consiagnet.it'; + +$top_amt = 20; + +$debug = 0; # 2 is more verbose + +# show the total bytes received for each individual email address in the log +$report_individual_bytes = 1; # 0 is off + +# make email addresses all lower case (so it will be case-insensitive) +$lowercase = 1; # 0 if off + +## MAIN routine + +while ($line = <>) { + + if ($line =~ + /^(\w+)\s+(\d+)\s(\d+):(\d+:\d+)\s+([\w-]+)\s+([\w-]+)\[(\d+)\]:\s(\w+\d+):\s(.+)$/) { + + if ($debug) { print "log line in expected format\n"; } + if ($debug > 1) { print "$line\n"; } + + $month = $1; + $day = $2; + $hour = $3; + $min_sec = $4; + $host = $5; + $daemon = $6; + $pid = $7; + $id = $8; + $data = $9; + + # get log start time + if (! $log_start_time) { $log_start_time = "$month $day $hour $min_sec"; } + + if ($daemon eq 'sendmail' || $daemon eq 'sm-mta') { + + if ($data =~ /from=(.+),\ssize=/) { + $from = $1; + $from =~ s/[><]//g; + if ($from eq "") { # from a Mailer-Daemon + $from = "<>"; + } + + if ($lowercase) { $from = lc ($from); } + $senders{$from}++; + if ($debug) { print "sender is $from\n"; } + + if ($data =~ / size=(\d+)\,\s/) { + $size = $1; + $sizes{$id} += $size; + $total_size += $size; + } +#$from_count++; + + if ($data =~ / relay=(.+)[$:]/) { + $relay = $1; + if ($relay =~ /may be/) { $relay =~ s/(.*) \(may be/$1/; } + $sending_hosts{$relay}++; + if ($debug) { print "sending host is $relay\n"; } + } + + } # from= + elsif (($data =~ /to=(.+)\, ctladdr=(.+), delay=/) || + ($data =~ /to=(.+)\, delay=/)) { + $to = $1; + if ($2) { + $to = $2; + $to =~ s/ \(\d+\/\d+\)//g; + } + + if ($data =~ / stat=([^ ]+)/) { + $stat = $1; + } + + if ($stat eq "Sent") { + if ($data =~ / mailer=([^,]+)\,\s/) { + $mailer = $1; + + if ($mailer eq "relay") { + $local_size += $sizes{$id}; + delete ($sizes{$id}); + $received_messages++; + } + if ($mailer eq "local" || $mailer eq "prog" || + $mailer eq "virtual" || $mailer eq "*file*") { + + $received_messages++; + $to =~ s/[<"](.+)[>"]/$1/; + if ($lowercase) { $to = lc ($to); } + if ($to =~ /\,/) { + foreach $username (split (/\,/, $to)) { + if ($username !~ /@/) { + $username = $username . '@' . $default_hostname; + } + $local_deliveries{$username}++; + if ($debug) { print "local delivery to $username\n"; } + if ($report_individual_bytes) { + $individual_size{$username} += $sizes{$id}; + if ($debug) { print "$username received $sizes{$id} bytes \n"; } + } + } + } + else { + $local_deliveries{$to}++; + if ($debug) { print "local delivery to $to\n"; } + if ($report_individual_bytes) { + $individual_size{$to} += $sizes{$id}; + if ($debug) { print "$to received $sizes{$id} bytes \n"; } + } + } + + $local_size += $sizes{$id}; + delete ($sizes{$id}); + + } # a local delivery + elsif ($mailer =~ /smtp|^relay$/i) { + $sent_messages++; + + if ($data =~ / relay=([^,]+),\s.+$/) { + $relay = $1; + $destination_hosts{$relay}++; + if ($debug) { print "destination host is $relay\n"; } + } + + } # sent out + + } # mailer= + + $hours{$hour}++; + + } # stat is Sent + else { + $sending_problems++; + if ($debug) { + print "sending problem \"stat=$stat\" ($sending_problems)\n"; + } + } + } # to= + +# $months{$month}++; +# $days{$day}++; +# $total++; + } + } + else { + if ($debug) { print "log line not in expected format:\n$line\n"; } + } +} + +# get log start time +$log_end_time = "$month $day $hour $min_sec"; + +## 1048576 is one meg +$total_size_mb = sprintf ("%.1f", ($total_size/1048576)); +$local_size_mb = sprintf ("%.1f", ($local_size/1048576)); + +print < $max) { $max = $hours{$i}; } +} + +$scale = int($max/50); +$scale = 1 if $scale == 0; + +print "Messages per hour (each dot is $scale messages)\n________________\n"; + +for ($c = 0; $c < 24; $c++) { + if ($c < 10) { $i = "0$c"; } + else { $i = $c; } + printf("%3d: %6d %s\n", $i, $hours{$i}, "." x int($hours{$i}/$scale)); +} + +&show_sending_hosts; +&show_destination_hosts; +&show_local_deliveries; +&show_senders; + +print "\n"; + +## end + +sub show_sending_hosts { + $count = 0; + print "\nTop $top_amt Sending Hosts\n____________________\n"; + + foreach $key (sort { + $sending_hosts{$b} <=> $sending_hosts{$a} } + keys %sending_hosts) { + $count++; + if ($count <= $top_amt) { + print "$sending_hosts{$key}\t$key\n"; + } + $total_sending_hosts++; + $total_sending_host_messages += $sending_hosts{$key}; + } + + print "\n$total_sending_hosts sending hosts attempted $total_sending_host_messages messages\n"; +} # show_sending_hosts + +sub show_destination_hosts { + $count = 0; + print "\nTop $top_amt Destination Hosts\n________________________\n"; + + foreach $key (sort { + $destination_hosts{$b} <=> $destination_hosts{$a} } + keys %destination_hosts) { + $count++; + if ($count <= $top_amt) { + print "$destination_hosts{$key}\t$key\n"; + } + $total_destination_hosts++; + $total_destination_host_messages += $destination_hosts{$key}; + } + + print "\n$total_destination_hosts destination hosts received $total_destination_host_messages messages\n"; + +} # show_destination_hosts + +sub show_local_deliveries { + $count = 0; + print "\nTop $top_amt Local Deliveries\n"; + if ($report_individual_bytes) { + print "Bytes\tEmails\tAccount\n"; + } + print "_______________________\n"; + + foreach $key (sort { + $local_deliveries{$b} <=> $local_deliveries{$a} } + keys %local_deliveries) { + $count++; + if ($count <= $top_amt) { + if ($report_individual_bytes) { + print "$individual_size{$key}\t"; + } + print "$local_deliveries{$key}\t$key\n"; + } + $local_accounts++; + $total_local_messages += $local_deliveries{$key}; + } + print + "\n$local_accounts local accounts received mail ($total_local_messages messages combined).\n"; + +} # show_local_deliveries + +sub show_senders { + $count = 0; + print "\nTop $top_amt Senders\n______________\n"; + + foreach $key (sort { + $senders{$b} <=> $senders{$a} } + keys %senders) { + $count++; + if ($count <= $top_amt) { + print "$senders{$key}\t$key\n"; + } + $total_senders++; + $total_senders_messages += $senders{$key}; + } + print + "\n$total_senders senders sent a combined $total_senders_messages messages.\n"; + +} # show_senders + +sub show_data { + + print <; +chomp($domain_name); +if ($domain_name eq "") { die "Domain name is mandatory ! Exiting ... \n";} +print "Default min uid ? [1001]\n"; +print "Default user group ? [2000]\n"; +print "Default user shell ? [/sbin/nologin]\n"; +print "\n"; +print "Press any key to continue or Ctrl+C to abort: [Return]"; +$key = getc(STDIN); +print "\n"; + +open (IN, "<@ARGV[0]") or die "Error opening @ARGV[0]" ; +open (OUT, ">import-email-$domain_name.sql"); + +print OUT "drop table mailuser;\n"; +print OUT "create table mailuser (uid integer autoincrement primary key,login varchar(20), pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50));\n"; +print OUT "insert into mailuser (uid,login) values (\'1999',\'removeme\');\n"; + +while ($line = ){ + chomp $line; + ($login,$pwd,$uid,$gid,$dummy1,$dummy2,$dummy3,$email,$home,$shell) = split (":",$line); + if ( ($uid >= "1002" && $uid <= "65533") && substr($line,0,1) == "#" ){ + ($part1,$domain) = split ("@",$email); + print "converting $uid:$login:$email\n"; + print OUT "insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ". + "(\'$login\',\'$pwd\',\'$defgid\',\'$login\@$domain_name\',\'$home\',\'$shell\',\'$domain_name\');\n"; + } +} + +print OUT "delete from mailuser where uid = '1999';\n"; + +print "\n"; +print "The file: import-email-$domain_name.sql is ready to be imported or edited."; diff --git a/tools/system2petar/.old/radius-convert-old-fmt.pl b/tools/system2petar/.old/radius-convert-old-fmt.pl new file mode 100755 index 0000000..629a5f2 --- /dev/null +++ b/tools/system2petar/.old/radius-convert-old-fmt.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl + +if (@ARGV[1] eq ""){ + print "Usage: ";\ + print "$0 old_format_db_file vendor_name\n"; + exit 5 ; +} + +print "\n"; +print "Ready to generate sql file for : @ARGV[0] \n"; +print "This hosts belong to vendor : @ARGV[1] \n"; +print "\n"; +print "Press any key to continue or Ctrl+C to abort"; +$key = getc(STDIN); +print "\n"; + +open (IN, "<@ARGV[0]") or die "Error opening @ARGV[0]" ; +open (OUT, ">import.sql"); + +while ($line = ){ + chomp $line; + ($ip,$netmask,$pwd,$login,$opt1) = split ("\t",$line); + print OUT "INSERT INTO RADIUSUSER (ip,netmask,login,pwd,vendor,opt1,opt2) VALUES (\'$ip\',\'$netmask\',\'$login\',\'$pwd\',\'@ARGV[1]\',\'$opt1\',\'$opt2\');\n"; +} + diff --git a/tools/system2petar/.old/virt-sys-import.pl b/tools/system2petar/.old/virt-sys-import.pl new file mode 100755 index 0000000..276f6ba --- /dev/null +++ b/tools/system2petar/.old/virt-sys-import.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl +# SQL STATEMENT: +# create table FWDUSER (email varchar(100) primary key, fwdaddr varchar(100), domain varchar(100)); +# cat import-email.sql | sqlite3 petar.db3 + +if (@ARGV[0] eq ""){ + print "Usage: ";\ + print "$0 virtusertable\n"; + exit 5 ; +} + +open (IN, "<@ARGV[0]") or die "Error opening @ARGV[0]" ; +open (OUT, ">import-virtusertable.sql"); +print OUT "drop table FWDUSER;\n"; +print OUT "create table FWDUSER (email varchar(100) primary key, fwdaddr varchar(100), domain varchar(100));\n"; + +while ($line = ){ + + chomp $line; + if ($line =~ ( /^\s*$/ ) || $line =~ (/^#.*$/)) { + + print "- Ignoring .... linea bianca o commento\n"; + + } else { + + print "+ Processing .. ".$line."\n"; + ($email,$fwdaddr) = split (" ",$line); + ($login,$domain) = split ("@",$email); + + $email = lc($email); + $fwdaddr = lc($fwdaddr); + $domain = lc($domain); + + print OUT "insert into FWDUSER (email,fwdaddr,domain) VALUES (\'$email\',\'$fwdaddr\',\'$domain\');\n"; + + } + +} diff --git a/tools/system2petar/CREATE TABLE MAILUSER (login varchar(20) primary key, pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); b/tools/system2petar/CREATE TABLE MAILUSER (login varchar(20) primary key, pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50)); new file mode 100644 index 0000000..e69de29 diff --git a/tools/system2petar/DROP TABLE IF EXISTS MAILUSER b/tools/system2petar/DROP TABLE IF EXISTS MAILUSER new file mode 100644 index 0000000..e69de29 diff --git a/tools/system2petar/convert_old_mailuser.sh b/tools/system2petar/convert_old_mailuser.sh new file mode 100755 index 0000000..655585c --- /dev/null +++ b/tools/system2petar/convert_old_mailuser.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbagnoli@consiag.it','dbagnoli@domino01.estraspa.it','consiag.it'); +# insert into MAILUSER (email,fwdaddr,domain) VALUES ('dbagnoli@consiag.it','dbagnoli@domino01.estraspa.it','consiag.it'); + +TEMPFILE=`mktemp -q /tmp/temp.XXXXXX` +#/usr/local/bin/sqlite3 $1 'select login, pwd, gid, email, home, shell, domain from MAILUSER;' | awk -F '|' '{printf "insert into MAILUSER ( login, pwd, gid, email, home, shell, domain ) VALUES ( \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\" )\n", $1,$2,$3,$4,$5,$6,$7 }' > ${TEMPFILE} +# cat ${TEMPFILE} | /usr/local/bin/sqlite3 /home/web/default/petar.company/db/petar.db3 +/usr/local/bin/sqlite3 $1 'select login, pwd, gid, email, home, shell, domain from MAILUSER;' | awk -F '|' '{printf "insert into MAILUSER ( login, pwd, gid, email, home, shell, domain ) VALUES ( \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\" );\n", $1,$2,$3,$4,$5,$6,$7 }' +# /usr/local/bin/sqlite3 $1 'select login, pwd, gid, email, home, shell, domain from MAILUSER;' | awk -F '|' '{printf "insert into MAILUSER VALUES ( \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\" )\n", $1,$2,$3,$4,$5,$6,$7 }' diff --git a/tools/system2petar/db.fwduser.sql b/tools/system2petar/db.fwduser.sql new file mode 100644 index 0000000..12100df --- /dev/null +++ b/tools/system2petar/db.fwduser.sql @@ -0,0 +1,911 @@ +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lpupilli@estraspa.it','lpupilli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dlabanca@estraspa.it','dlabanca@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gcortini@estraspa.it','gcortini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcarnasciali@estraspa.it','lcarnasciali@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sluppino@estraspa.it','sluppino@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('leonardi@agenzie.estraspa.it','ag-leonardi@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('andreini@agenzie.estraspa.it','ag-andreini@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rgenergia@agenzie.estraspa.it','ag-rgenergia@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmg@agenzie.estraspa.it','ag-gmg@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aiazzi@agenzie.estraspa.it','ag-aiazzi@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('traversi@agenzie.estraspa.it','ag-traversi@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pureenergy@agenzie.estraspa.it','ag-penergy@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('testxxx@agenzie.estraspa.it','agrazian@domino01.estraspa.it','agenzie.estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('conenergia@conenergia.it','cprotocollo@domino01.estraspa.it','conenergia.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('organismodivigilanza@consiag.it','organismodivigilanzaconsiag@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbagnoli@consiag.it','dbagnoli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ltundo@consiag.it','ltundo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mquercioli@consiag.it','mquercioli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('quercioli@consiag.it','pquercio@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('a.gavagni@consiag.it','agavagni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abacciotti@consiag.it','abacciotti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abertini@consiag.it','abertini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abuzzigoli@consiag.it','abuzzigoli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acampolmi@consiag.it','acampolmi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agavagni@consiag.it','agavagni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aginosa@consiag.it','aginosa@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agioia@consiag.it','agioia@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agraziani@consiag.it','agrazian@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aianelli@consiag.it','aianelli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amelia@consiag.it','famelia@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amirante@consiag.it','amirante@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aneri@consiag.it','aneri@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apagni@consiag.it','apagni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('atenuta@consiag.it','atenuta@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('azalunardo@consiag.it','azalunardo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccalistri@consiag.it','ccalistri@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccerboni@consiag.it','ccerboni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cparazza@consiag.it','cparazza@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('d.fantacci@consiag.it','dfantacci@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dcarlesi@consiag.it','dcarlesi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ddamico@consiag.it','ddamico@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dgensini@consiag.it','dgensini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dgiraldi@consiag.it','dgiraldi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpaolella@consiag.it','dpaolella@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dtempestini@consiag.it','dtempestini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebaiardi@consiag.it','ebaiardi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebeltrame@consiag.it','ebeltrame@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebilenchi@consiag.it','ebilenchi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('epasquinelli@consiag.it','epasquinelli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('faiazzi@consiag.it','faiazzi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbarni@consiag.it','fbarni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbellandi@consiag.it','fbellandi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fberni@consiag.it','fberni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbigagli@consiag.it','fbigagli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fdommi@consiag.it','fdommi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fgiacomelli@consiag.it','fgiacomelli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fleonardi@consiag.it','fleonardi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmagi@consiag.it','fmagi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmenichelli@consiag.it','fmenichelli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fniccolai@consiag.it','fniccolai@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fpoli@consiag.it','fpoli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fsabatini@consiag.it','fsabatin@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fsanti@consiag.it','fsanti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fscicchitano@consiag.it','fscicchitano@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fverniani@consiag.it','fvernian@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ggenchi@consiag.it','ggenchi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ginnocenti@consiag.it','ginnocenti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmalquori@consiag.it','gmalquori@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmartini@consiag.it','gmartini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpanerai@consiag.it','gpanerai@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpecchioli@consiag.it','gpecchioli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpettrone@consiag.it','gpettrone@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gtesco@consiag.it','gtesco@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('jcanelli@consiag.it','jcanelli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('l.baggiani@consiag.it','lbaggiani@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lbaggiani@consiag.it','lbaggiani@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcalussi@consiag.it','lcalussi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcappellini@consiag.it','lcappellini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcesqui@consiag.it','lcesqui@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ldallai@consiag.it','ldallai@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lgestri@consiag.it','lgestri@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lgherardini@consiag.it','lgherardini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lguasti@consiag.it','lguasti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('liovine@consiag.it','liovine@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('llastrucci@consiag.it','llastrucci@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmazzoni@consiag.it','lmazzoni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lvannucci@consiag.it','lvannucci@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('m.guasti@consiag.it','mguasti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('manello@consiag.it','manello@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbacci@consiag.it','mbacci@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbachi@consiag.it','mbachi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbartoletti@consiag.it','mbartoletti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('metroprontointervento@consiag.it','umetronotte@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmonteleone@consiag.it','mmonteleone@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpellegrini@consiag.it','mpellegrini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('msforzi@consiag.it','msforzi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mstage@consiag.it','mstage@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mtamburini@consiag.it','mtamburini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mtripoli@consiag.it','mtripoli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ngiordano@consiag.it','ngiordano@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nmoschillo@consiag.it','nmoschillo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('oconti@consiag.it','oconti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('otesserati@consiag.it','otesserati@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pabati@consiag.it','pabati@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pzappi@consiag.it','pzappi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rbartoli@consiag.it','rbartoli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rluccianti@consiag.it','rluccianti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmatteini@consiag.it','rmattein@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmatteucci@consiag.it','rmatteucci@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpicchi@consiag.it','rpicchi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpuccetti@consiag.it','rpuccett@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbecherini@consiag.it','sbecherini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('schini@consiag.it','schini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scozzani@consiag.it','scozzani@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('slupetti@consiag.it','slupetti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('snieri@consiag.it','snieri@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spalloni@consiag.it','spalloni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('squercioli@consiag.it','squercioli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('srindi@consiag.it','srindi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('tbruno@consiag.it','tbruno@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ufficiostampa@consiag.it','usconsia@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vbeligni@consiag.it','vbeligni@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vmasi@consiag.it','vmasi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rsettesoldi@consiag.it','rsettesoldi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbongini@consiag.it','sbongini@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('massimopapi@consiag.it','mapapi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consiag@consiag.it','cprotocollo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cont.ind@consiag.it','afenara@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('info@consiag.it','ssaccenti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('marketing@consiag.it','markcons@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('portineria@consiag.it','portineria@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ragio@consiag.it','lromagnoli@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sit@consiag.it','famelia@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('accertamentoprogetti@consiag.it','accertamentoprogetti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consiagmultiservizi@consiag.it','consiagm@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('faxglobalservice@consiag.it','faxglobalservice@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('faxprontointervento@consiag.it','faxprontointervento@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('globalserviceconenergia@consiag.it','globalserviceconenergia@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('publies.elettrico@consiag.it','publies.elettrico@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consorzioenergico@consiag.it','cprotocollo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('solgenera@consiag.it','cprotocollo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('utilitas@consiag.it','cprotocollo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('biogenera@consiag.it','cprotocollo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('manutenzionestrade-sesto@consiag.it','manutenzionestradesesto@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('servizioenergia_ce@consiag.it','servizio_energia_cs@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('servizioenergia_cs@consiag.it','servizio_energia_ce@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('allarmi-genesis@consiag.it','allarmi-genesis@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reperibile_cnet@consiag.it','lista_estracom_reperibile_cnet@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('resocontofax@consiag.it','resocontofax@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbutest@consiag.it','lista_estracom_amministrativo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbuassuranceerrfile@consiag.it','lista_estracom_amministrativo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbuassuranceerrdati@consiag.it','lista_estracom_amministrativo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbuassurancefoto@consiag.it','lista_estracom_amministrativo@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('guam@consiag.it','lista_estracom_guam@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('supporto_portale@consiag.it','supporto_portale@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('virus.alerts@consiag.it','mesantivirus@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('virusalert@consiag.it','mesantivirus@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-backoffice@consiag.it','segnalazionicc-back-office@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-clienti-fa@consiag.it','segnalazionicc-clienti-fuori-area@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-fatturazione@consiag.it','segnalazionicc-fatturazione@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-fatturazione-ee@consiag.it','segnalazionicc-fatturazione-energia-elettrica@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-frontoffice@consiag.it','segnalazionicc-front-office@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-recupero@consiag.it','segnalazionicc-recupero-crediti@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-rimborsi@consiag.it','segnalazionicc-rimborsi@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-business@consiag.it','segnalazionicc-marketing-clienti-business@domino01.estraspa.it','consiag.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consiagas@consiagas.it','cprotocollo@domino01.estraspa.it','consiagas.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consiagnet@consiagnet.it','lista_estracom_amministrativo@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('info_lir@consiagnet.it','lista_estracom_cnetanntech@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('announcements_lir@consiagnet.it','lista_estracom_ripe@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('technical_lir@consiagnet.it','lista_estracom_ripe@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('billing_lir@consiagnet.it','lista_estracom_ripe@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('adsl@consiagnet.it','lista_estracom_cnetanntech@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('domini@consiagnet.it','lista_estracom_cnetanntech@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('provisioning@consiagnet.it','lista_estracom_cnetanntech@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reseller@consiagnet.it','lista_estracom_reseller@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fibraottica@consiagnet.it','lista_estracom_fibraottica@domino01.estraspa.it','consiagnet.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consiagreti@consiagreti.it','cprotocollo@domino01.estraspa.it','consiagreti.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('consiagservizi@consiagservizi.it','cprotocollo@domino01.estraspa.it','consiagservizi.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('albo.grazi@esco-si.it','lista_info_escosi@domino01.estraspa.it','esco-si.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('martina.crociani@esco-si.it','macrociani@domino01.estraspa.it','esco-si.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('marta.berni@esco-si.it','lista_info_escosi@domino01.estraspa.it','esco-si.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('matteo.papi@esco-si.it','lista_info_escosi@domino01.estraspa.it','esco-si.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('info@esco-si.it','lista_info_escosi@domino01.estraspa.it','esco-si.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('organismodivigilanza@estraclima.it','organismodivigilanzaestraclima@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('privacy@estraclima.it','privacyclima@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('estraclima@estraclima.it','cprotocollo@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('globalservicear@estraclima.it','globalservicearezzo@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('globalservicesi@estraclima.it','globalservicesiena@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('globalservice@estraclima.it','globalservice@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reclami@estraclima.it','reclami_estraclima@domino01.estraspa.it','estraclima.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('admin@estracom.it','agavagni@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('privacy@estracom.it','privacycom@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fibraottica@estracom.it','lista_estracom_fibraottica@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('info@estracom.it','cprotocollo@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('estracom@estracom.it','lista_estracom_amministrativo@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cns112nuef@estracom.it','lista_estracom_cns112nuef@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbutest@estracom.it','lista_estracom_amministrativo@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbuassuranceerrfile@estracom.it','lista_estracom_amministrativo@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbuassuranceerrdati@estracom.it','lista_estracom_amministrativo@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbuassurancefoto@estracom.it','lista_estracom_amministrativo@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('info_lir@estracom.it','lista_estracom_cnetanntech@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('announcements_lir@estracom.it','lista_estracom_ripe@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('technical_lir@estracom.it','lista_estracom_ripe@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('billing_lir@estracom.it','lista_estracom_ripe@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('adsl@estracom.it','lista_estracom_cnetanntech@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('domini@estracom.it','lista_estracom_cnetanntech@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('provisioning@estracom.it','lista_estracom_cnetanntech@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reseller@estracom.it','lista_estracom_reseller@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('tecnico@estracom.it','lista_estracom_tecnico@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('noc@estracom.it','lista_estracom_noc@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reperibile@estracom.it','lista_estracom_reperibile_cnet@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reclami@estracom.it','reclami_estracom@domino01.estraspa.it','estracom.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('organismodivigilanza@estraelettricita.it','organismodivigilanzaestraelettricita@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('privacy@estraelettricita.it','privacyele@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aazzarello@estraelettricita.it','aazzarello@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amaiera@estraelettricita.it','amaiera@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpagani@estraelettricita.it','dpagani@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gcassa@estraelettricita.it','gcassa@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcarradori@estraelettricita.it','lcarradori@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmosca@estraelettricita.it','lmosca@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smarchi@estraelettricita.it','smarchi@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('tfranchi@estraelettricita.it','tfranchi@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('commerciale@estraelettricita.it','comesele@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('clienti@estraelettricita.it','clientielettria@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('boffice@estraelettricita.it','boffice@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reclami@estraelettricita.it','reclami_estraelettricita@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('switching@estraelettricita.it','estraelettricita_switching@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('connection@estraelettricita.it','estraelettricita_connection@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('marketing@estraelettricita.it','estraelettricita_marketing@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dispatching@estraelettricita.it','estraelettricita_dispatching@domino01.estraspa.it','estraelettricita.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('organismodivigilanza@estraenergie.it','organismodivigilanzaestraenergie@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('privacy@estraenergie.it','privacyene@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('estraenergie@estraenergie.it','pecscarico-protocollosiena@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('clientionline@estraenergie.it','coestra@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reclami@estraenergie.it','reclami_estraenergie@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pmi@estraenergie.it','lchieffo@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('industriali@estraenergie.it','lchieffo@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('condomini@estraenergie.it','lista_condomini@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('staff@estraenergie.it','staff_direzione_estraenergie@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('trading@estraenergie.it','lista_trading@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fornitori@estraenergie.it','fornitori_estraenergie@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('forniturepa@estraenergie.it','forniturepa_estraenergie@domino01.estraspa.it','estraenergie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('clienti@estragpl.it','clientiestragpl@domino01.estraspa.it','estragpl.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('direzione@estragpl.it','direzioneestragpl@domino01.estraspa.it','estragpl.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reclami@estragpl.it','reclami_estragpl@domino01.estraspa.it','estragpl.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('redazione@estranotizie.it','gdivita@domino01.estraspa.it','estranotizie.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('organismodivigilanza@estraretigas.it','organismodivigilanzaestraretigas@domino01.estraspa.it','estraretigas.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('privacy@estraretigas.it','privacyreti@domino01.estraspa.it','estraretigas.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('staff@estraretigas.it','staffestraretigas@domino01.estraspa.it','estraretigas.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('accertamentoprogetti@estraretigas.it','accertamentoprogetti@domino01.estraspa.it','estraretigas.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('estraretigas@estraretigas.it','pecscarico-protocolloarezzo@domino01.estraspa.it','estraretigas.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('licenzesoftware@estraspa.it','licenzesoftware@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('allarmiwit@estraspa.it','swit@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('organismodivigilanza@estraspa.it','organismodivigilanzaestra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('privacy@estraspa.it','privacyestra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc.ecritalia@estraspa.it','recr@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc.datacompany@estraspa.it','rdatacompany@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc.datacompany.siena@estraspa.it','rdatasiena@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agraziani@estraspa.it','agrazian@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-backoffice@estraspa.it','segnalazionicc-back-office@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-clienti-fa@estraspa.it','segnalazionicc-clienti-fuori-area@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-fatturazione@estraspa.it','segnalazionicc-fatturazione@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-fatturazione-ee@estraspa.it','segnalazionicc-fatturazione-energia-elettrica@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-frontoffice@estraspa.it','segnalazionicc-front-office@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-recupero@estraspa.it','segnalazionicc-recupero-crediti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-rimborsi@estraspa.it','segnalazionicc-rimborsi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cc-business@estraspa.it','segnalazionicc-marketing-clienti-business@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcherici@estraspa.it','dism_fcherici','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cfei@estraspa.it','cfei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abaldini@estraspa.it','abaldini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aganasci@estraspa.it','aganasci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aianelli@estraspa.it','aianelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('almati@estraspa.it','almati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amarra@estraspa.it','amarra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amessia@estraspa.it','amessia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apalloni@estraspa.it','apalloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apuccetti@estraspa.it','apuccetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cbruni@estraspa.it','cbruni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccalistri@estraspa.it','ccalistri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccardellini@estraspa.it','cardellini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cgualtieri@estraspa.it','cgualtie@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cpugi@estraspa.it','cpugi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cvecci@estraspa.it','cvecci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dandriulli@estraspa.it','dandriulli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dcalleri@estraspa.it','dcalleri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dcarlesi@estraspa.it','dcarlesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpetracchi@estraspa.it','dpetracchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpicchi@estraspa.it','dpicchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebartolini@estraspa.it','ebartolini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebeudo@estraspa.it','ebeudo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('edesiato@estraspa.it','edesiato@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('eguarducci@estraspa.it','eguarducci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('eromani@estraspa.it','eromani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbessi@estraspa.it','fbessi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcardillo@estraspa.it','fcardillo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fricci@estraspa.it','fricci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fsalvi@estraspa.it','fsalvi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ftargioni@estraspa.it','ftargion@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fvenuti@estraspa.it','fvenuti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gblotto@estraspa.it','gblotto@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gcaristia@estraspa.it','gcaristia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gdelli@estraspa.it','gdelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmatteini@estraspa.it','gmatteini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gsantoro@estraspa.it','gsantoro@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ilumini@estraspa.it','ilumini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lbecchi@estraspa.it','lbecchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lbettarini@estraspa.it','lbettarini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lferri@estraspa.it','lferri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmaganzi@estraspa.it','lmaganzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lrisaliti@estraspa.it','lrisalit@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lsalvini@estraspa.it','lsalvini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lzoppi@estraspa.it','lzoppi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbacchetti@estraspa.it','mbacchetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mboninsegna@estraspa.it','mboninsegna@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcecconi@estraspa.it','mcecconi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mciolini@estraspa.it','mciolini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('metroprontointervento@estraspa.it','umetronotte@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mfogacci@estraspa.it','mfogacci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('miannelli@estraspa.it','miannelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mlanza@estraspa.it','mlanza@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmina@estraspa.it','mmina@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmengoni@estraspa.it','mmengoni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpaoletti@estraspa.it','mpaoletti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpericcioli@estraspa.it','mpericcioli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mquercioli@estraspa.it','mquercioli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mraffa@estraspa.it','mraffa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mvinerbi@estraspa.it','mvinerbi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pcristaudo@estraspa.it','pcristaudo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pdomenicali@estraspa.it','pdomenicali@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pgai@estraspa.it','pgai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('praffa@estraspa.it','praffa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pquercioli@estraspa.it','pquercio@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rfantacci@estraspa.it','rfantacci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpicchi@estraspa.it','rpicchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rvinci@estraspa.it','rvinci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbaldini@estraspa.it','sbaldini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbinazzi@estraspa.it','sbinazzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smocciola@estraspa.it','smocciola@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smoretti@estraspa.it','smoretti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spallini@estraspa.it','spallini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('stgrassi@estraspa.it','stgrassi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('tboscaglia@estraspa.it','tboscaglia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('yvitella@estraspa.it','yvitella@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ympruneti@estraspa.it','mpruneti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('eragusa@estraspa.it','eragusa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aauciello@estraspa.it','aauciello@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scancelliere@estraspa.it','scancelliere@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fberti@estraspa.it','fberti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abettini@estraspa.it','abettini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbezzini@estraspa.it','sbezzini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rtesti@estraspa.it','rtesti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acostagli@estraspa.it','acostagli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vbellinati@estraspa.it','vbellinati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ecassano@estraspa.it','ecassano@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdamato@estraspa.it','mdamato@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abari@estraspa.it','abari@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abelleschi@estraspa.it','abelleschi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abuti@estraspa.it','abuti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acencini@estraspa.it','acencini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aproperzi@estraspa.it','aproperzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('arezzacchi@estraspa.it','arezzacchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cciani@estraspa.it','cciani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cgori@estraspa.it','cgori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cmorgantini@estraspa.it','cmorgantini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cnigi@estraspa.it','cnigi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('crossipaccani@estraspa.it','crossipaccani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbracciali@estraspa.it','dbracciali@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dfineschi@estraspa.it','dfineschi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dmarzo@estraspa.it','dmarzo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dmori@estraspa.it','dmori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpetreni@estraspa.it','dpetreni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbassi@estraspa.it','fbassi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbonari@estraspa.it','fbonari@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcataldo@estraspa.it','fcataldo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fchiereghin@estraspa.it','fchiereghin@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fgrassi@estraspa.it','fgrassi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('firicci@estraspa.it','firicci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gbasile@estraspa.it','gbasile@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gbruno@estraspa.it','gbruno@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gcarteri@estraspa.it','gcarteri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfbigliazzi@estraspa.it','gfbigliazzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfanetti@estraspa.it','gfanetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfinetti@estraspa.it','gfinetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ggabbricci@estraspa.it','ggabbricci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ggoracci@estraspa.it','ggoracci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmorgantini@estraspa.it','gmorgantini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpistolozzi@estraspa.it','gpistolozzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gseverini@estraspa.it','gseverini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gtondi@estraspa.it','gtondi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ifederico@estraspa.it','ifederico@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lbaldoni@estraspa.it','lbaldoni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcasini@estraspa.it','lcasini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lceccarelli@estraspa.it','lceccarelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lonobili@estraspa.it','lonobili@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmigliorini@estraspa.it','lmigliorini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lnobili@estraspa.it','lnobili@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lprovvedi@estraspa.it','lprovvedi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ltirabassi@estraspa.it','ltirabassi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lvolpi@estraspa.it','lvolpi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbambini@estraspa.it','mbambini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbetti@estraspa.it','mbetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbettollini@estraspa.it','mbettollini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbiagiotti@estraspa.it','mbiagiotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbindi@estraspa.it','mbindi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcrociani@estraspa.it','mcrociani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mgiunti@estraspa.it','mgiunti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mguerranti@estraspa.it','mguerranti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mlorenzini@estraspa.it','mlorenzini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mnencini@estraspa.it','mnencini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mparricchi@estraspa.it','mparricchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mricci@estraspa.it','mricci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('msantucci@estraspa.it','msantucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('msenesi@estraspa.it','msenesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mtortoli@estraspa.it','mtortoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nfalsetti@estraspa.it','nfalsetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nseminara@estraspa.it','nseminara@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pcateni@estraspa.it','pcateni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pmanganelli@estraspa.it','pmanganelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('prustichini@estraspa.it','prustichini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rbianciardi@estraspa.it','rbianciardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rcertosini@estraspa.it','rcertosini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rfiacchi@estraspa.it','rfiacchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmalandri@estraspa.it','rmalandri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmartini@estraspa.it','rmartini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rparenti@estraspa.it','rparenti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rrigacci@estraspa.it','rrigacci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rrossi@estraspa.it','rrossi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbecarelli@estraspa.it','sbecarelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbelia@estraspa.it','sbelia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sgambelli@estraspa.it','sgambelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sriccucci@estraspa.it','sriccucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('srosati@estraspa.it','srosati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('stognazzi@estraspa.it','stognazzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('striccucci@estraspa.it','striccucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('svarrone@estraspa.it','svarrone@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sviolante@estraspa.it','sviolante@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('tparolai@estraspa.it','tparolai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vbalducci@estraspa.it','vbalducci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbrogini@estraspa.it','sbrogini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rburlotti@estraspa.it','rburlotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acaloni@estraspa.it','acaloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('malterini@estraspa.it','malterini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pantonelli@estraspa.it','pantonelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbianchini@estraspa.it','mbianchini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbuonavita@estraspa.it','sbuonavita@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mceccherini@estraspa.it','mceccherini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sciuffoni@estraspa.it','sciuffoni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcossu@estraspa.it','mcossu@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('selisei@estraspa.it','selisei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfabianelli@estraspa.it','gfabianelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mgennai@estraspa.it','mgennai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('egoretti@estraspa.it','egoretti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('glucattini@estraspa.it','glucattini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmarmorini@estraspa.it','mmarmorini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmonini@estraspa.it','fmonini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nniccolai@estraspa.it','nniccolai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('enocentini@estraspa.it','enocentini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aposani@estraspa.it','aposani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('frosadi@estraspa.it','frosadi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('srossi@estraspa.it','srossi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fsacchetti@estraspa.it','fsacchetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mvanzi@estraspa.it','mvanzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rvergura@estraspa.it','rvergura@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mnocentini@estraspa.it','mnocentini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nperuzzi@estraspa.it','nperuzzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gbruni@estraspa.it','gbruni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpucci@estraspa.it','mpucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ariguccini@estraspa.it','ariguccini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fsadotti@estraspa.it','fsadotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smercati@estraspa.it','smercati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmartinelli@estraspa.it','mmartinelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cgiannini@estraspa.it','cgiannini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ucocchi@estraspa.it','ucocchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpiomboni@estraspa.it','mpiomboni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mvillarecci@estraspa.it','mvillarecci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abonaccini@estraspa.it','abonaccini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('malunni@estraspa.it','malunni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ibaldini@estraspa.it','ibaldini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pbaldini@estraspa.it','pbaldini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('frbarni@estraspa.it','frbarni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lbianconi@estraspa.it','lbianconi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbravaccini@estraspa.it','fbravaccini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcaselli@estraspa.it','fcaselli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vcommodari@estraspa.it','vcommodari@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sfiacchini@estraspa.it','sfiacchini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ugori@estraspa.it','ugori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sluchi@estraspa.it','sluchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmarraghini@estraspa.it','gmarraghini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pnucci@estraspa.it','pnucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aparati@estraspa.it','aparati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mportolani@estraspa.it','mportolani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ferosadi@estraspa.it','ferosadi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lrosadi@estraspa.it','lrosadi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rsinceri@estraspa.it','rsinceri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ssodi@estraspa.it','ssodi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rtinti@estraspa.it','rtinti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gviviani@estraspa.it','gviviani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mzacchei@estraspa.it','mzacchei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mzappalorti@estraspa.it','mzappalorti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mciani@estraspa.it','mciani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdesantis@estraspa.it','mdesantis@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdistefano@estraspa.it','mdistefano@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amartellucci@estraspa.it','amartellucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gtiberti@estraspa.it','gtiberti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acardellini@estraspa.it','acardellini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pmiluzzi@estraspa.it','pmiluzzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpagliai@estraspa.it','mpagliai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abezzi@estraspa.it','abezzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abaldi@estraspa.it','abaldi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aberti@estraspa.it','aberti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abianconi@estraspa.it','abianconi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acardaci@estraspa.it','acardaci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aciolfi@estraspa.it','aciolfi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ademitri@estraspa.it','ademitri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('afenara@estraspa.it','afenara@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('afioravanti@estraspa.it','afioravanti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('afusi@estraspa.it','afusi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agianni@estraspa.it','agianni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aguidoni@estraspa.it','aguidoni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amati@estraspa.it','amati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('atolve@estraspa.it','atolve@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('avieri@estraspa.it','avieri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('bdetti@estraspa.it','bdetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('bleonardi@estraspa.it','bleonardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('blombardini@estraspa.it','blombardini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('bpergolizzi@estraspa.it','bpergolizzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cabeti@estraspa.it','cabeti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cbrini@estraspa.it','cbrini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cbutelli@estraspa.it','cbutelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccapitani@estraspa.it','ccapitani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccencioni@estraspa.it','ccencioni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccherubini@estraspa.it','ccherubini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cforti@estraspa.it','cforti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cisolani@estraspa.it','cisolani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cmaggesi@estraspa.it','cmaggesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('csantini@estraspa.it','csantini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbaldini@estraspa.it','dbaldini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbagnoli@estraspa.it','dbagnoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dcappelli@estraspa.it','dcappelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dgenovesi@estraspa.it','dgenovesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebonci@estraspa.it','ebonci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('emattei@estraspa.it','emattei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('emelani@estraspa.it','emelani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('enardi@estraspa.it','enardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('enocciarelli@estraspa.it','enocciarelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('equerci@estraspa.it','equerci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fagriesti@estraspa.it','fagriesti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('famelia@estraspa.it','famelia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbarluzzi@estraspa.it','fbarluzzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fconti@estraspa.it','fconti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ffavini@estraspa.it','ffavini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fferrara@estraspa.it','fferrara@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ffrangipani@estraspa.it','ffrangipani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fgalli@estraspa.it','fgalli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmagni@estraspa.it','fmagni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmicheloni@estraspa.it','fmicheloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fnerini@estraspa.it','fnerini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('svanni@estraspa.it','svanni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gbartoli@estraspa.it','gbartoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gbolognesi@estraspa.it','gbolognesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gdivita@estraspa.it','gdivita@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfavero@estraspa.it','gfavero@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfelici@estraspa.it','gfelici@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gferri@estraspa.it','gferri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ghernandez@estraspa.it','ghernandez@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gliperni@estraspa.it','gliperni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpoma@estraspa.it','gpoma@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpratesi@estraspa.it','gpratesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gstefani@estraspa.it','gstefani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('igabbiani@estraspa.it','igabbiani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('inisi@estraspa.it','inisi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('jmenchetti@estraspa.it','jmenchetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('larcangiolini@estraspa.it','larcangiolini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lborgianni@estraspa.it','lborgianni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcastagni@estraspa.it','lcastagni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lceccherini@estraspa.it','lceccherini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcioni@estraspa.it','lcioni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lfratosi@estraspa.it','lfratosi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lnencini@estraspa.it','lnencini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lpisa@estraspa.it','lpisa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lromagnoli@estraspa.it','lromagnoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lsani@estraspa.it','lsani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lsassolini@estraspa.it','lsassolini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbelli@estraspa.it','mbelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcalosi@estraspa.it','mcalosi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcantisani@estraspa.it','mcantisani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcerbai@estraspa.it','mcerbai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcillerai@estraspa.it','mcillerai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdanesi@estraspa.it','mdanesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdellagiovampaola@estraspa.it','mdellagiovampaola@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mflori@estraspa.it','mflori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mguasti@estraspa.it','mguasti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mnesi@estraspa.it','mnesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpasquini@estraspa.it','mpasquini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpiersanti@estraspa.it','mpiersanti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('msaccardi@estraspa.it','msaccardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mtarani@estraspa.it','mtarani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nmalvinni@estraspa.it','nmalvinni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('otesserati@estraspa.it','otesserati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pabati@estraspa.it','pabati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pbrandi@estraspa.it','pbrandi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pchiricozzi@estraspa.it','pchiricozzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pguigliotti@estraspa.it','pguigliotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pperuzzi@estraspa.it','pperuzzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pporcelli@estraspa.it','pporcelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rbanchetti@estraspa.it','rbanchetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rbellaccini@estraspa.it','rbellaccini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('relmi@estraspa.it','relmi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmarra@estraspa.it','rmarra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpagliocca@estraspa.it','rpagliocca@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpetrini@estraspa.it','rpetrini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpuccetti@estraspa.it','rpuccett@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rponzecchi@estraspa.it','rponzecchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('salessi@estraspa.it','salessi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbuiarelli@estraspa.it','sbuiarelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scastellaneta@estraspa.it','scastellaneta@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scorridi@estraspa.it','scorridi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sciofi@estraspa.it','sciofi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sfabianelli@estraspa.it','sfabianelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smarilli@estraspa.it','smarilli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smarini@estraspa.it','smarini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smazzolai@estraspa.it','smazzolai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smelani@estraspa.it','smelani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spaoloni@estraspa.it','spaoloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spuggelli@estraspa.it','spuggelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ssaccenti@estraspa.it','ssaccenti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('szacchei@estraspa.it','szacchei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vburicchi@estraspa.it','vburicchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vdiraimondo@estraspa.it','vdiraimondo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vferri@estraspa.it','vferri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ufficiostampa@estraspa.it','usconsia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gbruschi@estraspa.it','gbruschi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcacioli@estraspa.it','mcacioli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccardinali@estraspa.it','ccardinali@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lfabiani@estraspa.it','lfabiani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mghiandai@estraspa.it','mghiandai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('smenguzzo@estraspa.it','smenguzzo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('iniccolini@estraspa.it','iniccolini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spalazzini@estraspa.it','spalazzini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aromiti@estraspa.it','aromiti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gborgogni@estraspa.it','gborgogni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcinaglia@estraspa.it','fcinaglia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amagnani@estraspa.it','amagnani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmarri@estraspa.it','mmarri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fzurli@estraspa.it','fzurli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmoruzzi@estraspa.it','mmoruzzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('asonnati@estraspa.it','asonnati@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('elencofornitori@estraspa.it','elencofornitori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('svaleriani@estraspa.it','svaleriani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aangori@estraspa.it','aangori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abarzagli@estraspa.it','abarzagli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abellucci@estraspa.it','abellucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aberbeglia@estraspa.it','aberbeglia@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abrilli@estraspa.it','abrilli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acardelli@estraspa.it','acardelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('adiluca@estraspa.it','adiluca@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('afunaioli@estraspa.it','afunaioli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agennari@estraspa.it','agennari@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aguida@estraspa.it','aguida@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aiocca@estraspa.it','aiocca@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('alombardi@estraspa.it','alombardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amigliorini@estraspa.it','amigliorini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('anbarni@estraspa.it','anbarni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ancecchi@estraspa.it','ancecchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('anulli@estraspa.it','anulli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apepe@estraspa.it','apepe@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apetrosino@estraspa.it','apetrosino@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apiazzi@estraspa.it','apiazzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('asani@estraspa.it','asani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('atangredi@estraspa.it','atangredi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('avettori@estraspa.it','avettori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cbaiocchi@estraspa.it','cbaiocchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccarusi@estraspa.it','ccarusi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccascio@estraspa.it','ccascio@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccecchi@estraspa.it','ccecchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cdemicheli@estraspa.it','cdemicheli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cafei@estraspa.it','cafei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cgallorini@estraspa.it','cgallorini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cgorgoglione@estraspa.it','cgorgoglione@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cmanes@estraspa.it','cmanes@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cmassa@estraspa.it','cmassa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('corganelli@estraspa.it','corganelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cspighi@estraspa.it','cspighi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ddibenedetto@estraspa.it','ddibenedetto@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dfani@estraspa.it','dfani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dfantacci@estraspa.it','dfantacci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dtiberi@estraspa.it','dtiberi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dvannini@estraspa.it','dvannini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebaldini@estraspa.it','ebaldini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dbellandi@estraspa.it','dbellandi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ebianconi@estraspa.it','ebianconi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('efei@estraspa.it','efei@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('egiorgi@estraspa.it','egiorgi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('elelli@estraspa.it','elelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('elombardi@estraspa.it','elombardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('epepe@estraspa.it','epepe@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbaldanzi@estraspa.it','fbaldanzi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbennardo@estraspa.it','fbennardo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbini@estraspa.it','fbini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcannari@estraspa.it','fcannari@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ffabbroni@estraspa.it','ffabbroni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ffiume@estraspa.it','ffiume@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmoffa@estraspa.it','fmoffa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fpisini@estraspa.it','fpisini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fporzionato@estraspa.it','fporzionato@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gcecchi@estraspa.it','gcecchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gdesimone@estraspa.it','gdesimone@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfabbri@estraspa.it','gfabbri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gfalco@estraspa.it','gfalco@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gleri@estraspa.it','gleri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gpettrone@estraspa.it','gpettrone@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ipezzuoli@estraspa.it','ipezzuoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('jnannetti@estraspa.it','jnannetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lballini@estraspa.it','lballini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lbartolini@estraspa.it','lbartolini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcesqui@estraspa.it','lcesqui@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lchieffo@estraspa.it','lchieffo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lfarisco@estraspa.it','lfarisco@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lfedeli@estraspa.it','lfedeli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lgiannini@estraspa.it','lgiannini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lgrassi@estraspa.it','lgrassi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('liasenza@estraspa.it','liasenza@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('llupi@estraspa.it','lupi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmancini@estraspa.it','lmancini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmarchetti@estraspa.it','lmarchetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lpunzo@estraspa.it','lpunzo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ltundo@estraspa.it','ltundo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mapaoletti@estraspa.it','mapaoletti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('malpini@estraspa.it','malpini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbaroncini@estraspa.it','mbaroncini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbizzoco@estraspa.it','mbizzoco@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbrisinda@estraspa.it','mbrisinda@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbrogi@estraspa.it','mbrogi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcanestrelli@estraspa.it','mcanestrelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcannizzaro@estraspa.it','mcannizzaro@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcasullo@estraspa.it','mcasullo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcoleschi@estraspa.it','mcoleschi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mcorrente@estraspa.it','mcorrente@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdematteis@estraspa.it','mdematteis@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mdramis@estraspa.it','mdramis@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mfattorini@estraspa.it','mfattorini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mfinotti@estraspa.it','mfinotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mfranchi@estraspa.it','mfranchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mlangella@estraspa.it','mlangella@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmaggio@estraspa.it','mmaggio@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmagnanensi@estraspa.it','mmagnanensi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmanetti@estraspa.it','mmanetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mneri@estraspa.it','mneri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mparri@estraspa.it','mparri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mrafanelli@estraspa.it','mrafanel@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mriccucci@estraspa.it','mriccucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('msalimbeni@estraspa.it','msalimbeni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mtravascio@estraspa.it','mtravascio@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nmoschillo@estraspa.it','nmoschillo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('nscavone@estraspa.it','nscavone@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pbertini@estraspa.it','pbertini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pcortesi@estraspa.it','pcortesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pdomini@estraspa.it','pdomini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pgiglio@estraspa.it','pgiglio@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pierardi@estraspa.it','pierardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('plamponi@estraspa.it','plamponi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ppaffetti@estraspa.it','ppaffetti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ppepe@estraspa.it','ppepe@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ptredici@estraspa.it','ptredici@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('qualitacom@estraspa.it','qestra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmaestri@estraspa.it','rmaestri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rpresenti@estraspa.it','rpresenti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rrondinella@estraspa.it','rrondinella@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rrosticci@estraspa.it','rrosticci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rrusso@estraspa.it','rrusso@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rsammicheli@estraspa.it','rsammicheli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sbadiani@estraspa.it','sbadiani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sborgi@estraspa.it','sborgi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scambi@estraspa.it','scambi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scanestrelli@estraspa.it','scanestrelli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scariello@estraspa.it','scariello@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scetoloni@estraspa.it','scetoloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sciacchini@estraspa.it','sciacchini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('scoradeschi@estraspa.it','scoradeschi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sgallorini@estraspa.it','sgallorini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spanfi@estraspa.it','spanfi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('svaiani@estraspa.it','svaiani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vgigli@estraspa.it','vgigli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vmoscioni@estraspa.it','vmoscioni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('yprovenzano@estraspa.it','yprovenzano@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('wcamilloni@estraspa.it','wcamilloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cglimatola@estraspa.it','cglimatola@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('llancini@estraspa.it','llancini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('clientionline@estraspa.it','coestra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('estra@estraspa.it','cprotocollo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('segreteria@estraspa.it','sestraspa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pmi@estraspa.it','lchieffo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('industriali@estraspa.it','lchieffo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('condomini@estraspa.it','lista_condomini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('reclami@estraspa.it','reclami_estraspa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('logisticagas@estraspa.it','logisticagas@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('marketing@estraspa.it','markcons@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('recessi@estraspa.it','restraspa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('relazioni@estraspa.it','ssaccenti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('letture@estraspa.it','letture@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gasluce@estraspa.it','gasluce@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('controllogestione@estraspa.it','lista_controllogestione@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('salesmanager@estraspa.it','salesmanager@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('telefoniamobile@estraspa.it','lista_estracom_guam@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('illuminazionepubblica@estraspa.it','illuminazione_pubblica@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('documentidelibera40@estraspa.it','documentidelibera40@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('segreteriatecnica.siena@estraspa.it','segreteriatecnicasiena@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('assistenza.frontoffice@estraspa.it','assistenza_frontoffice_estraenergie@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('risorse.umane@estraspa.it','risorse.umane_estra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('contrattisiena@estraspa.it','contrattisiena@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('facilitymanagement@estraspa.it','facilitymanagement@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rsu@estraspa.it','irsu@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('helpdesksiena@estraspa.it','hdsiena@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('incassi@estraspa.it','incassi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('pratiche.frontoffice@estraspa.it','frontoffice_pratiche@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abertini@estraspa.it','abertini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acappelletti@estraspa.it','acappelletti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('afatichenti@estraspa.it','afatichenti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aginosa@estraspa.it','aginosa@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('azalunardo@estraspa.it','azalunardo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccarini@estraspa.it','ccarini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('cdangelo@estraspa.it','cdangelo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dcortonesi@estraspa.it','dcortonesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ddicamillo@estraspa.it','ddicamillo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dfranchi@estraspa.it','dfranchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dgensini@estraspa.it','dgensini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dgiraldi@estraspa.it','dgiraldi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpaolella@estraspa.it','dpaolella@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbellandi@estraspa.it','fbellandi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbettarini@estraspa.it','fbettarini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fbigagli@estraspa.it','fbigagli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fleonardi@estraspa.it','fleonardi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fsanti@estraspa.it','fsanti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('grustichini@estraspa.it','grustichini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcalussi@estraspa.it','lcalussi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lguasti@estraspa.it','lguasti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('liovine@estraspa.it','liovine@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('llastrucci@estraspa.it','llastrucci@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mandreani@estraspa.it','mandreani@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mbolognesi@estraspa.it','mbolognesi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mgiua@estraspa.it','mgiua@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmancini@estraspa.it','mmancini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ngiordano@estraspa.it','ngiordano@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rbartoli@estraspa.it','rbartoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rchiti@estraspa.it','rchiti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rluccianti@estraspa.it','rluccianti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rtamburrino@estraspa.it','rtamburrino@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('rmatteini@estraspa.it','rmattein@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mtripoli@estraspa.it','mtripoli@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mgianotti@estraspa.it','mgianotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fverniani@estraspa.it','fvernian@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agrazzini@estraspa.it','agrazzini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('amaiera@estraspa.it','amaiera@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('tfranchi@estraspa.it','tfranchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mmoncada@estraspa.it','mmoncada@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dcarannante@estraspa.it','dcarannante@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gstolfi@estraspa.it','gstolfi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lcarradori@estraspa.it','carraestra@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abiribo@estraspa.it','abiribo@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lpaletti@estraspa.it','lpaletti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ptavanti@estraspa.it','ptavanti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spaccagnini@estraspa.it','spaccagnini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('vvannoni@estraspa.it','vvannoni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fcenni@estraspa.it','fcenni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('abacciotti@estraspa.it','abacciotti@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('paypal@estraspa.it','agavagni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('agavagni@estraspa.it','agavagni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aneri@estraspa.it','aneri@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ccerboni@estraspa.it','ccerboni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ddamico@estraspa.it','ddamico@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fmagi@estraspa.it','fmagi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('fniccolai@estraspa.it','fniccolai@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('ggenchi@estraspa.it','ggenchi@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gmalquori@estraspa.it','gmalquori@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lmazzoni@estraspa.it','lmazzoni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpellegrini@estraspa.it','mpellegrini@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('spalloni@estraspa.it','spalloni@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('guam@estraspa.it','lista_estracom_guam@domino01.estraspa.it','estraspa.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('a.barni@exotrading.eu','exobarni@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('c.mereu@exotrading.eu','exomereu@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('n.moschillo@exotrading.eu','exomoschillo@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('a.piazzi@exotrading.eu','exopiazzi@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('f.santorum@exotrading.eu','exosantorum@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('l.nencini@exotrading.eu','exonencini@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('m.brumana@exotrading.eu','exobrumana@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('s.becarelli@exotrading.eu','exobecarelli@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('r.ronchetti@exotrading.eu','exoronchetti@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('administration@exotrading.eu','exotrading-administration@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('confirmations@exotrading.eu','exotrading-confirmations@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('operations@exotrading.eu','exotrading-operations@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('exotrading@exotrading.eu','pecscarico-protocollosiena@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('texo@exotrading.eu','texo@domino01.estraspa.it','exotrading.eu'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('redazione@ilpunto-online.it','lista_redpunto@domino01.estraspa.it','ilpunto-online.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('martina.crociani@nova-e.it','macrociani@domino01.estraspa.it','nova-e.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('segreteria@novae.it','macrociani@domino01.estraspa.it','novae.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('publies@publiesenergiasicura.it','publies@domino01.estraspa.it','publiesenergiasicura.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('manutentori@publiesenergiasicura.it','manutentori_publies@domino01.estraspa.it','publiesenergiasicura.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('segreteria@sinergiagreentech.it','macrociani@domino01.estraspa.it','sinergiagreentech.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('sinergie@sinergie-online.it','cprotocollo@domino01.estraspa.it','sinergie-online.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('solgenera@solgenera.it','cprotocollo@domino01.estraspa.it','solgenera.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('info@useneko.com','lista_info_useneko@domino01.estraspa.it','useneko.com'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('aciabatti@x21.it','aciabatti@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('dpucci@x21.it','dpucci@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('drobbio@x21.it','drobbio@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('gscandale@x21.it','gscandale@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('lloguercio@x21.it','lloguercio@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('mpaolucci@x21.it','mpaolucci@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('irusconi@x21.it','irusconi@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('apaleari@x21.it','apaleari@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('csangalli@x21.it','csangalli@domino01.estraspa.it','x21.it'); +insert into FWDUSER (email,fwdaddr,domain) VALUES ('acarmagnini@x21.it','acarmagnini@domino01.estraspa.it','x21.it'); diff --git a/tools/system2petar/db.spamilter.sql b/tools/system2petar/db.spamilter.sql new file mode 100644 index 0000000..e06f14d --- /dev/null +++ b/tools/system2petar/db.spamilter.sql @@ -0,0 +1,1093 @@ +INSERT INTO spamilter VALUES(1,'SND','22srl.it','fabiana.galassi','Accept',NULL); +INSERT INTO spamilter VALUES(2,'SND','a2a.eu','marco.ambrosini','Accept',NULL); +INSERT INTO spamilter VALUES(3,'SND','abedmahfouz.com','abed','Accept',NULL); +INSERT INTO spamilter VALUES(4,'SND','accentureinsuranceservices.it','','Accept',NULL); +INSERT INTO spamilter VALUES(5,'SND','acli.it','','Accept',NULL); +INSERT INTO spamilter VALUES(6,'SND','acne-resource.org','kc','Accept',NULL); +INSERT INTO spamilter VALUES(7,'SND','acnestudios.com','heidi.hulden','Accept',NULL); +INSERT INTO spamilter VALUES(8,'SND','acs-to.com','egan83','Accept',NULL); +INSERT INTO spamilter VALUES(9,'SND','adecco.it','','Accept',NULL); +INSERT INTO spamilter VALUES(10,'SND','adm.unifi.it','lettere','Accept',NULL); +INSERT INTO spamilter VALUES(11,'SND','aedon.it','','Accept',NULL); +INSERT INTO spamilter VALUES(12,'SND','aeffe.com','','Accept',NULL); +INSERT INTO spamilter VALUES(13,'SND','aefferappresentanze.it','ombretta','Accept',NULL); +INSERT INTO spamilter VALUES(14,'SND','agenziadogane.it','','Accept',NULL); +INSERT INTO spamilter VALUES(15,'SND','aics.it','','Accept',NULL); +INSERT INTO spamilter VALUES(16,'SND','aicsarezzo.it','','Accept',NULL); +INSERT INTO spamilter VALUES(17,'SND','akris.ch','','Accept',NULL); +INSERT INTO spamilter VALUES(18,'SND','akuaril.com','akuaril','Accept',NULL); +INSERT INTO spamilter VALUES(19,'SND','alberto-roy.com','','Accept',NULL); +INSERT INTO spamilter VALUES(20,'SND','albinipitigliani.it','','Accept',NULL); +INSERT INTO spamilter VALUES(21,'SND','albisetti.it','','Accept',NULL); +INSERT INTO spamilter VALUES(22,'SND','alcedoambiente.com','','Accept',NULL); +INSERT INTO spamilter VALUES(23,'SND','alexanderwang.com','','Accept',NULL); +INSERT INTO spamilter VALUES(24,'SND','alias2k.com','','Accept',NULL); +INSERT INTO spamilter VALUES(25,'SND','alice.it','wolverineexxtreme','Accept',NULL); +INSERT INTO spamilter VALUES(26,'SND','alice.it','wolverine1881','Accept',NULL); +INSERT INTO spamilter VALUES(27,'SND','alice.it','stefanopiccini','Accept',NULL); +INSERT INTO spamilter VALUES(28,'SND','alice.it','siro.ciabattini','Accept',NULL); +INSERT INTO spamilter VALUES(29,'SND','alice.it','silvia.gerioni','Accept',NULL); +INSERT INTO spamilter VALUES(30,'SND','alice.it','marco.faleppi','Accept',NULL); +INSERT INTO spamilter VALUES(31,'SND','alice.it','m.bazzini','Accept',NULL); +INSERT INTO spamilter VALUES(32,'SND','alice.it','luciasassolini','Accept',NULL); +INSERT INTO spamilter VALUES(33,'SND','alice.it','luciano.ciantini','Accept',NULL); +INSERT INTO spamilter VALUES(34,'SND','alice.it','lorenzo.torricini','Accept',NULL); +INSERT INTO spamilter VALUES(35,'SND','alice.it','gianfranco.donato','Accept',NULL); +INSERT INTO spamilter VALUES(36,'SND','alice.it','fontani.fabio','Accept',NULL); +INSERT INTO spamilter VALUES(37,'SND','alice.it','facocerus','Accept',NULL); +INSERT INTO spamilter VALUES(38,'SND','alice.it','fabiolorigabri','Accept',NULL); +INSERT INTO spamilter VALUES(39,'SND','alice.it','fabio.noferi','Accept',NULL); +INSERT INTO spamilter VALUES(40,'SND','alice.it','elisa.ranieri','Accept',NULL); +INSERT INTO spamilter VALUES(41,'SND','alice.it','d.callegher','Accept',NULL); +INSERT INTO spamilter VALUES(42,'SND','alice.it','cristina.vieri','Accept',NULL); +INSERT INTO spamilter VALUES(43,'SND','alice.it','ballantini73','Accept',NULL); +INSERT INTO spamilter VALUES(44,'SND','alice.it','airone1961','Accept',NULL); +INSERT INTO spamilter VALUES(45,'SND','alice.it','abizzarri','Accept',NULL); +INSERT INTO spamilter VALUES(46,'SND','alice.it','mr.jocker','Accept',NULL); +INSERT INTO spamilter VALUES(47,'SND','alice.it','monica.enrico','Accept',NULL); +INSERT INTO spamilter VALUES(48,'SND','aliceposta.it','giuseppe.morello','Accept',NULL); +INSERT INTO spamilter VALUES(49,'SND','alisped.it','','Accept',NULL); +INSERT INTO spamilter VALUES(50,'SND','alitalia.it','','Accept',NULL); +INSERT INTO spamilter VALUES(51,'SND','alpiworld.com','','Accept',NULL); +INSERT INTO spamilter VALUES(52,'SND','altrolavoro.it','m.valdinoci','Accept',NULL); +INSERT INTO spamilter VALUES(53,'SND','amandawakeley.com','','Accept',NULL); +INSERT INTO spamilter VALUES(54,'SND','americanexpress.it','estrattonline','Accept',NULL); +INSERT INTO spamilter VALUES(55,'SND','analocking.com','ana','Accept',NULL); +INSERT INTO spamilter VALUES(56,'SND','andershaal.com','production','Accept',NULL); +INSERT INTO spamilter VALUES(57,'SND','andrewmajtenyi.com','josieg','Accept',NULL); +INSERT INTO spamilter VALUES(58,'SND','annaaichinger.com','','Accept',NULL); +INSERT INTO spamilter VALUES(59,'SND','antoniofusco.it','','Accept',NULL); +INSERT INTO spamilter VALUES(60,'SND','apple.com','','Accept',NULL); +INSERT INTO spamilter VALUES(61,'SND','april.it','','Accept',NULL); +INSERT INTO spamilter VALUES(62,'SND','apriltextiles.com','','Accept',NULL); +INSERT INTO spamilter VALUES(63,'SND','aquascutum.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(64,'SND','archiworld.it','m.sacconi','Accept',NULL); +INSERT INTO spamilter VALUES(65,'SND','arcomex.com.br','operacional','Accept',NULL); +INSERT INTO spamilter VALUES(66,'SND','arezzoenergia.it','','Accept',NULL); +INSERT INTO spamilter VALUES(67,'SND','arketipo.com','isabelle.buchau','Accept',NULL); +INSERT INTO spamilter VALUES(68,'SND','artea.toscana.it','','Accept',NULL); +INSERT INTO spamilter VALUES(69,'SND','ascontex.com','massimo.mosiello','Accept',NULL); +INSERT INTO spamilter VALUES(70,'SND','asf.toscana.it','lucia.vieri','Accept',NULL); +INSERT INTO spamilter VALUES(71,'SND','assindar.it','','Accept',NULL); +INSERT INTO spamilter VALUES(72,'SND','assoservizisrl.it','','Accept',NULL); +INSERT INTO spamilter VALUES(73,'SND','at.escada.com','','Accept',NULL); +INSERT INTO spamilter VALUES(74,'SND','atelierstimamiglio.it','amministrazione','Accept',NULL); +INSERT INTO spamilter VALUES(75,'SND','ateneoweb.com','no-reply','Accept',NULL); +INSERT INTO spamilter VALUES(76,'SND','ath.forthnet.gr','anax','Accept',NULL); +INSERT INTO spamilter VALUES(77,'SND','avion.it','annaventurini','Accept',NULL); +INSERT INTO spamilter VALUES(78,'SND','avioninternational.com','anna.venturini','Accept',NULL); +INSERT INTO spamilter VALUES(79,'SND','aw-atelier.com','sc','Accept',NULL); +INSERT INTO spamilter VALUES(80,'SND','aws.it','','Accept',NULL); +INSERT INTO spamilter VALUES(81,'SND','aws.leonet.it','webmaster','Accept',NULL); +INSERT INTO spamilter VALUES(82,'SND','axa-agenzie.it','ag4180','Accept',NULL); +INSERT INTO spamilter VALUES(83,'SND','badianistudio.it','regina','Accept',NULL); +INSERT INTO spamilter VALUES(84,'SND','bally.ch','','Accept',NULL); +INSERT INTO spamilter VALUES(85,'SND','bancafideuram.it','','Accept',NULL); +INSERT INTO spamilter VALUES(86,'SND','bancatoscana.it','','Accept',NULL); +INSERT INTO spamilter VALUES(87,'SND','bancavaldarno.it','lorociuffenna','Accept',NULL); +INSERT INTO spamilter VALUES(88,'SND','bandofoutsiders.com','','Accept',NULL); +INSERT INTO spamilter VALUES(89,'SND','barbetta.it','','Accept',NULL); +INSERT INTO spamilter VALUES(90,'SND','barlycra.it','','Accept',NULL); +INSERT INTO spamilter VALUES(91,'SND','bartolini-usa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(92,'SND','baruffa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(93,'SND','bcbg.com','','Accept',NULL); +INSERT INTO spamilter VALUES(94,'SND','begimpianti.it','','Accept',NULL); +INSERT INTO spamilter VALUES(95,'SND','belfe.it','','Accept',NULL); +INSERT INTO spamilter VALUES(96,'SND','bellandi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(97,'SND','belstaff.com','','Accept',NULL); +INSERT INTO spamilter VALUES(98,'SND','bender.cameramoda.it','','Accept',NULL); +INSERT INTO spamilter VALUES(99,'SND','bertolottispa.it','','Accept',NULL); +INSERT INTO spamilter VALUES(100,'SND','bespace.it','','Accept',NULL); +INSERT INTO spamilter VALUES(101,'SND','biellayarn.it','','Accept',NULL); +INSERT INTO spamilter VALUES(102,'SND','blackberry.orange.fr','vincentstaff','Accept',NULL); +INSERT INTO spamilter VALUES(103,'SND','blessberlin.com','','Accept',NULL); +INSERT INTO spamilter VALUES(104,'SND','blufin.it','','Accept',NULL); +INSERT INTO spamilter VALUES(105,'SND','bogner.com','','Accept',NULL); +INSERT INTO spamilter VALUES(106,'SND','braccialini.it','','Accept',NULL); +INSERT INTO spamilter VALUES(107,'SND','brachi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(108,'SND','bradcorp.com.au','mxs','Accept',NULL); +INSERT INTO spamilter VALUES(109,'SND','brooksbrothers.com','','Accept',NULL); +INSERT INTO spamilter VALUES(110,'SND','brunellocucinelli.it','','Accept',NULL); +INSERT INTO spamilter VALUES(111,'SND','brunosrl.it','','Accept',NULL); +INSERT INTO spamilter VALUES(112,'SND','btbgroup.it','','Accept',NULL); +INSERT INTO spamilter VALUES(113,'SND','burberry.com','','Accept',NULL); +INSERT INTO spamilter VALUES(114,'SND','bwin.it','team','Accept',NULL); +INSERT INTO spamilter VALUES(115,'SND','calamai.it','','Accept',NULL); +INSERT INTO spamilter VALUES(116,'SND','calypsostbarth.com','','Accept',NULL); +INSERT INTO spamilter VALUES(117,'SND','camac.it','','Accept',NULL); +INSERT INTO spamilter VALUES(118,'SND','capara.be','capara','Accept',NULL); +INSERT INTO spamilter VALUES(119,'SND','caravancampeggio.it','simona','Accept',NULL); +INSERT INTO spamilter VALUES(120,'SND','cariaggi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(121,'SND','carlin-groupe.com','stefania','Accept',NULL); +INSERT INTO spamilter VALUES(122,'SND','cartabcc.it','cartabcc','Accept',NULL); +INSERT INTO spamilter VALUES(123,'SND','cascamiseta.com','','Accept',NULL); +INSERT INTO spamilter VALUES(124,'SND','casprini.it','','Accept',NULL); +INSERT INTO spamilter VALUES(125,'SND','caspriniengineering.it','','Accept',NULL); +INSERT INTO spamilter VALUES(126,'SND','castelnuovese.it','','Accept',NULL); +INSERT INTO spamilter VALUES(127,'SND','cataldigroup.it','','Accept',NULL); +INSERT INTO spamilter VALUES(128,'SND','catherinemalandrino.com','','Accept',NULL); +INSERT INTO spamilter VALUES(129,'SND','cathypill.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(130,'SND','cct.it','','Accept',NULL); +INSERT INTO spamilter VALUES(131,'SND','cervedgroup.com','','Accept',NULL); +INSERT INTO spamilter VALUES(132,'SND','ch3.it','acitati','Accept',NULL); +INSERT INTO spamilter VALUES(133,'SND','chadwickbell.com','','Accept',NULL); +INSERT INTO spamilter VALUES(134,'SND','chanel-corp.com','','Accept',NULL); +INSERT INTO spamilter VALUES(135,'SND','chapurin.com','','Accept',NULL); +INSERT INTO spamilter VALUES(136,'SND','charmingfabrics.com','','Accept',NULL); +INSERT INTO spamilter VALUES(137,'SND','cherrera.com','','Accept',NULL); +INSERT INTO spamilter VALUES(138,'SND','cherrygrove.it','','Accept',NULL); +INSERT INTO spamilter VALUES(139,'SND','chiaraboni.com','','Accept',NULL); +INSERT INTO spamilter VALUES(141,'SND','chocolat.ee','katrin.kuldma','Accept',NULL); +INSERT INTO spamilter VALUES(142,'SND','chong-sheng.com','verri','Accept',NULL); +INSERT INTO spamilter VALUES(143,'SND','christieslingerie.it','','Accept',NULL); +INSERT INTO spamilter VALUES(144,'SND','christopherkane.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(145,'SND','ciet.it','stefano.artini','Accept',NULL); +INSERT INTO spamilter VALUES(146,'SND','cirquedusoleil.com','','Accept',NULL); +INSERT INTO spamilter VALUES(147,'SND','cita.it','','Accept',NULL); +INSERT INTO spamilter VALUES(148,'SND','citylodge.co.nz','info','Accept',NULL); +INSERT INTO spamilter VALUES(149,'SND','ck.com','','Accept',NULL); +INSERT INTO spamilter VALUES(150,'SND','clubmonaco.com','laura.galbraith','Accept',NULL); +INSERT INTO spamilter VALUES(151,'SND','cmcaquatics.co.uk','fsrframe','Accept',NULL); +INSERT INTO spamilter VALUES(152,'SND','c-m-i.it','chiara.liberti','Accept',NULL); +INSERT INTO spamilter VALUES(153,'SND','codekorea.com','','Accept',NULL); +INSERT INTO spamilter VALUES(154,'SND','codetex.com','','Accept',NULL); +INSERT INTO spamilter VALUES(155,'SND','cofinco.it','','Accept',NULL); +INSERT INTO spamilter VALUES(156,'SND','coinca.com.pe','neremove','Accept',NULL); +INSERT INTO spamilter VALUES(157,'SND','collesi.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(158,'SND','comfibre.it','','Accept',NULL); +INSERT INTO spamilter VALUES(159,'SND','comune.cavriglia.ar.','m.baldini','Accept',NULL); +INSERT INTO spamilter VALUES(160,'SND','comune.montevarchi.ar','deventig','Accept',NULL); +INSERT INTO spamilter VALUES(161,'SND','confesercenti.ar.it','nbencivenni','Accept',NULL); +INSERT INTO spamilter VALUES(162,'SND','confidimpresetoscane.it','silvia.gori','Accept',NULL); +INSERT INTO spamilter VALUES(163,'SND','confindustria.it','','Accept',NULL); +INSERT INTO spamilter VALUES(164,'SND','confindustria.toscana.it','cte','Accept',NULL); +INSERT INTO spamilter VALUES(165,'SND','confindustriatoscanasud.it','','Accept',NULL); +INSERT INTO spamilter VALUES(166,'SND','consultinvest.it','gabriella.toti','Accept',NULL); +INSERT INTO spamilter VALUES(167,'SND','consum.it','servizioclienti','Accept',NULL); +INSERT INTO spamilter VALUES(168,'SND','corp.privalia.com','crm.sponsored','Accept',NULL); +INSERT INTO spamilter VALUES(169,'SND','corporate.parma.it','commerciale','Accept',NULL); +INSERT INTO spamilter VALUES(170,'SND','cosstores.com','','Accept',NULL); +INSERT INTO spamilter VALUES(171,'SND','costumenational.it','','Accept',NULL); +INSERT INTO spamilter VALUES(172,'SND','cosviv.it','segreteria','Accept',NULL); +INSERT INTO spamilter VALUES(173,'SND','cottontrend.it','','Accept',NULL); +INSERT INTO spamilter VALUES(174,'SND','cpfsrl.com','daniele.beligni','Accept',NULL); +INSERT INTO spamilter VALUES(175,'SND','creations-lingerie.com','dbenard','Accept',NULL); +INSERT INTO spamilter VALUES(176,'SND','cribisdnb.com','','Accept',NULL); +INSERT INTO spamilter VALUES(177,'SND','cribisdnb.it','','Accept',NULL); +INSERT INTO spamilter VALUES(178,'SND','crisconf.it','','Accept',NULL); +INSERT INTO spamilter VALUES(179,'SND','cristalleriaeuropa.it','','Accept',NULL); +INSERT INTO spamilter VALUES(180,'SND','cristextil.pt','jose.vaz','Accept',NULL); +INSERT INTO spamilter VALUES(181,'SND','cristinaeffe.com','giorgia','Accept',NULL); +INSERT INTO spamilter VALUES(182,'SND','csm.arts.ac.uk','l.wilson','Accept',NULL); +INSERT INTO spamilter VALUES(183,'SND','cushnieetochs.com','','Accept',NULL); +INSERT INTO spamilter VALUES(184,'SND','custhelp.com','','Accept',NULL); +INSERT INTO spamilter VALUES(185,'SND','custo-barcelona.com','','Accept',NULL); +INSERT INTO spamilter VALUES(186,'SND','daily.it','liaviolacalosci','Accept',NULL); +INSERT INTO spamilter VALUES(187,'SND','danielbenjamingeneva.com','daniel','Accept',NULL); +INSERT INTO spamilter VALUES(188,'SND','dasololtd.com','','Accept',NULL); +INSERT INTO spamilter VALUES(189,'SND','dbgroup.net','','Accept',NULL); +INSERT INTO spamilter VALUES(190,'SND','de.escada.com','','Accept',NULL); +INSERT INTO spamilter VALUES(191,'SND','deanna.it','','Accept',NULL); +INSERT INTO spamilter VALUES(192,'SND','dereklam.com','','Accept',NULL); +INSERT INTO spamilter VALUES(193,'SND','designcouture.fr','fabienne.fargeau','Accept',NULL); +INSERT INTO spamilter VALUES(194,'SND','devanlay.fr','','Accept',NULL); +INSERT INTO spamilter VALUES(195,'SND','dhl.com','','Accept',NULL); +INSERT INTO spamilter VALUES(196,'SND','distrelec.com','fmvendite.it','Accept',NULL); +INSERT INTO spamilter VALUES(197,'SND','dkintl.com','swong','Accept',NULL); +INSERT INTO spamilter VALUES(198,'SND','dnb.com','','Accept',NULL); +INSERT INTO spamilter VALUES(199,'SND','dolcegabbana.it','','Accept',NULL); +INSERT INTO spamilter VALUES(200,'SND','dolcicalze2.com','cristina','Accept',NULL); +INSERT INTO spamilter VALUES(201,'SND','dorson-intl.com','','Accept',NULL); +INSERT INTO spamilter VALUES(202,'SND','douglashannant.com','rdemattie','Accept',NULL); +INSERT INTO spamilter VALUES(203,'SND','dressing.it','','Accept',NULL); +INSERT INTO spamilter VALUES(204,'SND','dspm.it','sergio.velati','Accept',NULL); +INSERT INTO spamilter VALUES(205,'SND','duckeredmiston.com','wyman','Accept',NULL); +INSERT INTO spamilter VALUES(206,'SND','dvf.com','','Accept',NULL); +INSERT INTO spamilter VALUES(207,'SND','e2-fashion.at','office','Accept',NULL); +INSERT INTO spamilter VALUES(208,'SND','ebay.it','','Accept',NULL); +INSERT INTO spamilter VALUES(209,'SND','ecafil.it','','Accept',NULL); +INSERT INTO spamilter VALUES(210,'SND','edilmarketfailli.it','','Accept',NULL); +INSERT INTO spamilter VALUES(211,'SND','eliesaab.com','','Accept',NULL); +INSERT INTO spamilter VALUES(212,'SND','email.it','dconte','Accept',NULL); +INSERT INTO spamilter VALUES(213,'SND','email.it','aaghito','Accept',NULL); +INSERT INTO spamilter VALUES(214,'SND','email.msn.com','enrique','Accept',NULL); +INSERT INTO spamilter VALUES(215,'SND','emerson-collection.com','kristin','Accept',NULL); +INSERT INTO spamilter VALUES(216,'SND','emmevizeta.it','alberto','Accept',NULL); +INSERT INTO spamilter VALUES(217,'SND','emocromatosi.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(218,'SND','enasarco.it','','Accept',NULL); +INSERT INTO spamilter VALUES(219,'SND','enricogori.it','uff.gori','Accept',NULL); +INSERT INTO spamilter VALUES(220,'SND','enterpriseviaggi.com','','Accept',NULL); +INSERT INTO spamilter VALUES(221,'SND','eobocci.com','','Accept',NULL); +INSERT INTO spamilter VALUES(222,'SND','eposta.ru','elenagal','Accept',NULL); +INSERT INTO spamilter VALUES(223,'SND','eskandar.com','','Accept',NULL); +INSERT INTO spamilter VALUES(224,'SND','estraspa.it','','Accept',NULL); +INSERT INTO spamilter VALUES(225,'SND','eu.vfblp.com','','Accept',NULL); +INSERT INTO spamilter VALUES(226,'SND','e-ultramar.com.br','pbarbosa','Accept',NULL); +INSERT INTO spamilter VALUES(227,'SND','euro.apple.com','','Accept',NULL); +INSERT INTO spamilter VALUES(228,'SND','eurofili.it','','Accept',NULL); +INSERT INTO spamilter VALUES(229,'SND','eurometis.it','michele.grimaldi','Accept',NULL); +INSERT INTO spamilter VALUES(230,'SND','europeups.com','massimo.sacchini','Accept',NULL); +INSERT INTO spamilter VALUES(231,'SND','eurostick.it','','Accept',NULL); +INSERT INTO spamilter VALUES(232,'SND','fabriziodelcarlo.it','','Accept',NULL); +INSERT INTO spamilter VALUES(233,'SND','faenzastile.it','','Accept',NULL); +INSERT INTO spamilter VALUES(234,'SND','famar-italia.com','','Accept',NULL); +INSERT INTO spamilter VALUES(235,'SND','fantastic.com.hk','','Accept',NULL); +INSERT INTO spamilter VALUES(236,'SND','fashionmagazine.it','help','Accept',NULL); +INSERT INTO spamilter VALUES(237,'SND','fasi.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(238,'SND','fastwebnet.it','maurober','Accept',NULL); +INSERT INTO spamilter VALUES(239,'SND','fastwebnet.it','cicognani','Accept',NULL); +INSERT INTO spamilter VALUES(240,'SND','fateks.com.tr','nurettint','Accept',NULL); +INSERT INTO spamilter VALUES(241,'SND','fauske.com','lorenz','Accept',NULL); +INSERT INTO spamilter VALUES(242,'SND','feelbetterthangood.ch','homewear','Accept',NULL); +INSERT INTO spamilter VALUES(243,'SND','ferragamo.com','','Accept',NULL); +INSERT INTO spamilter VALUES(244,'SND','ferraricotonificio.it','','Accept',NULL); +INSERT INTO spamilter VALUES(245,'SND','figsp.it','max.ciceri','Accept',NULL); +INSERT INTO spamilter VALUES(246,'SND','filatimaclodio.it','','Accept',NULL); +INSERT INTO spamilter VALUES(247,'SND','filidea.com','','Accept',NULL); +INSERT INTO spamilter VALUES(248,'SND','filofair.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(249,'SND','filosrl.com','','Accept',NULL); +INSERT INTO spamilter VALUES(250,'SND','filpartner.it','s.demicheli','Accept',NULL); +INSERT INTO spamilter VALUES(251,'SND','finissaggioferraris.it','','Accept',NULL); +INSERT INTO spamilter VALUES(252,'SND','finvetro.it','mp.alamanni','Accept',NULL); +INSERT INTO spamilter VALUES(253,'SND','fllimeoni.it','tiziana','Accept',NULL); +INSERT INTO spamilter VALUES(254,'SND','fmmg.it','cdilauro','Accept',NULL); +INSERT INTO spamilter VALUES(255,'SND','fondiaria-sai.it','montevarchi.0330','Accept',NULL); +INSERT INTO spamilter VALUES(256,'SND','fontanellaspa.it','claudio.guelpa','Accept',NULL); +INSERT INTO spamilter VALUES(257,'SND','fr.balenciaga.com','laetitia.lenzotti','Accept',NULL); +INSERT INTO spamilter VALUES(258,'SND','fr.ysl.com','benjamin.brett','Accept',NULL); +INSERT INTO spamilter VALUES(259,'SND','francovago.com','callerame.mil','Accept',NULL); +INSERT INTO spamilter VALUES(260,'SND','francovannucchi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(261,'SND','free.fr','ale.zamp','Accept',NULL); +INSERT INTO spamilter VALUES(262,'SND','fulgar.com','','Accept',NULL); +INSERT INTO spamilter VALUES(263,'SND','gabriellafrattini.com','','Accept',NULL); +INSERT INTO spamilter VALUES(264,'SND','gallotessile.it','','Accept',NULL); +INSERT INTO spamilter VALUES(265,'SND','galvanlondon.com','','Accept',NULL); +INSERT INTO spamilter VALUES(266,'SND','gamberiniauto.it','','Accept',NULL); +INSERT INTO spamilter VALUES(267,'SND','gaoperations.it','','Accept',NULL); +INSERT INTO spamilter VALUES(268,'SND','gap.com','','Accept',NULL); +INSERT INTO spamilter VALUES(269,'SND','gargantu.com','','Accept',NULL); +INSERT INTO spamilter VALUES(270,'SND','gavagroup.com','','Accept',NULL); +INSERT INTO spamilter VALUES(271,'SND','gbsconsulting.org','','Accept',NULL); +INSERT INTO spamilter VALUES(272,'SND','gcconsultants.com','','Accept',NULL); +INSERT INTO spamilter VALUES(273,'SND','gdt.it','galbiati','Accept',NULL); +INSERT INTO spamilter VALUES(274,'SND','ge.com','romina.corsi','Accept',NULL); +INSERT INTO spamilter VALUES(275,'SND','gentilimosconi.it','alessia.cairoli','Accept',NULL); +INSERT INTO spamilter VALUES(276,'SND','georgetarend.com','a.hoffmann','Accept',NULL); +INSERT INTO spamilter VALUES(277,'SND','ghezzi.com','','Accept',NULL); +INSERT INTO spamilter VALUES(278,'SND','giemmefilati.com','davide.fiore','Accept',NULL); +INSERT INTO spamilter VALUES(279,'SND','gilmar.it','','Accept',NULL); +INSERT INTO spamilter VALUES(280,'SND','giorgettipagano.it','m.mariaconcetta','Accept',NULL); +INSERT INTO spamilter VALUES(281,'SND','gitechsrl.it','elisa.caselli','Accept',NULL); +INSERT INTO spamilter VALUES(282,'SND','giulianateso.it','papillonspa','Accept',NULL); +INSERT INTO spamilter VALUES(283,'SND','givenchy.fr','','Accept',NULL); +INSERT INTO spamilter VALUES(284,'SND','gmail.com','','Accept',NULL); +INSERT INTO spamilter VALUES(285,'SND','gpmotors.net','','Accept',NULL); +INSERT INTO spamilter VALUES(286,'SND','grace-inter.co.jp','takako','Accept',NULL); +INSERT INTO spamilter VALUES(287,'SND','gransasso.it','','Accept',NULL); +INSERT INTO spamilter VALUES(288,'SND','groz-beckert.com','','Accept',NULL); +INSERT INTO spamilter VALUES(289,'SND','gruppobotto.com','','Accept',NULL); +INSERT INTO spamilter VALUES(290,'SND','gunex.it','','Accept',NULL); +INSERT INTO spamilter VALUES(291,'SND','gunex.net','','Accept',NULL); +INSERT INTO spamilter VALUES(292,'SND','haase.fr','ludovic','Accept',NULL); +INSERT INTO spamilter VALUES(293,'SND','hamishmorrow.com','','Accept',NULL); +INSERT INTO spamilter VALUES(294,'SND','hangyangitalia.com','alessandra.zaino','Accept',NULL); +INSERT INTO spamilter VALUES(295,'SND','hangzhou-silk.com','claude.wang','Accept',NULL); +INSERT INTO spamilter VALUES(296,'SND','haniabyanyacole.com','rozana','Accept',NULL); +INSERT INTO spamilter VALUES(297,'SND','hanmail.net','chohoonn','Accept',NULL); +INSERT INTO spamilter VALUES(298,'SND','heavenauto.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(299,'SND','helmutlang.com','','Accept',NULL); +INSERT INTO spamilter VALUES(300,'SND','hermes.com','','Accept',NULL); +INSERT INTO spamilter VALUES(301,'SND','hiperformance.it','contact','Accept',NULL); +INSERT INTO spamilter VALUES(302,'SND','hk.alexanderwang.com','','Accept',NULL); +INSERT INTO spamilter VALUES(303,'SND','hm.com','paolo.meoni','Accept',NULL); +INSERT INTO spamilter VALUES(304,'SND','hmsinc.co.kr','jennyguo','Accept',NULL); +INSERT INTO spamilter VALUES(305,'SND','hollylachatte.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(306,'SND','hotel.it','una.mediterraneo','Accept',NULL); +INSERT INTO spamilter VALUES(307,'SND','hotelamendolafiera.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(308,'SND','hotelkunlun.com','res','Accept',NULL); +INSERT INTO spamilter VALUES(309,'SND','hotmail.com','mauriziotemesio','Accept',NULL); +INSERT INTO spamilter VALUES(310,'SND','hotmail.com','maja_bc','Accept',NULL); +INSERT INTO spamilter VALUES(311,'SND','hotmail.com','inningtft','Accept',NULL); +INSERT INTO spamilter VALUES(312,'SND','hotmail.com','bei_jang','Accept',NULL); +INSERT INTO spamilter VALUES(313,'SND','hotmail.com','bei-yang','Accept',NULL); +INSERT INTO spamilter VALUES(314,'SND','hotmail.com','annaritacelano8','Accept',NULL); +INSERT INTO spamilter VALUES(315,'SND','hotmail.com','angelokatsapis','Accept',NULL); +INSERT INTO spamilter VALUES(316,'SND','hotmail.com','amyonlineoutlet24hours','Accept',NULL); +INSERT INTO spamilter VALUES(317,'SND','hotmail.it','sordimargherita','Accept',NULL); +INSERT INTO spamilter VALUES(318,'SND','hotmail.it','beia','Accept',NULL); +INSERT INTO spamilter VALUES(319,'SND','hpi.se','hpi','Accept',NULL); +INSERT INTO spamilter VALUES(320,'SND','hshunmei.com','christina','Accept',NULL); +INSERT INTO spamilter VALUES(321,'SND','icicle.com.cn','','Accept',NULL); +INSERT INTO spamilter VALUES(322,'SND','icqglobal.com','','Accept',NULL); +INSERT INTO spamilter VALUES(323,'SND','iisli.com','marisac','Accept',NULL); +INSERT INTO spamilter VALUES(324,'SND','ijs.it','bryan','Accept',NULL); +INSERT INTO spamilter VALUES(325,'SND','ilcat.it','','Accept',NULL); +INSERT INTO spamilter VALUES(326,'SND','ildescofirenze.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(327,'SND','ilportaledellautomobilista.it','','Accept',NULL); +INSERT INTO spamilter VALUES(328,'SND','ilsole24ore.com','','Accept',NULL); +INSERT INTO spamilter VALUES(329,'SND','imax.it','','Accept',NULL); +INSERT INTO spamilter VALUES(330,'SND','infinite-sport.it','paolo','Accept',NULL); +INSERT INTO spamilter VALUES(331,'SND','infocamere.it','','Accept',NULL); +INSERT INTO spamilter VALUES(332,'SND','infocert.it','','Accept',NULL); +INSERT INTO spamilter VALUES(333,'SND','infonegocio.com','tufilset','Accept',NULL); +INSERT INTO spamilter VALUES(334,'SND','inps.it','','Accept',NULL); +INSERT INTO spamilter VALUES(335,'SND','insic.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(336,'SND','interbusiness.it','resspa','Accept',NULL); +INSERT INTO spamilter VALUES(337,'SND','interfree.it','alcopi','Accept',NULL); +INSERT INTO spamilter VALUES(338,'SND','intesasanpaolo.com','','Accept',NULL); +INSERT INTO spamilter VALUES(339,'SND','inwind.it','speedy85','Accept',NULL); +INSERT INTO spamilter VALUES(340,'SND','inwind.it','scarpi','Accept',NULL); +INSERT INTO spamilter VALUES(341,'SND','inwind.it','piemmesrl','Accept',NULL); +INSERT INTO spamilter VALUES(342,'SND','inwind.it','mary1486','Accept',NULL); +INSERT INTO spamilter VALUES(343,'SND','inwind.it','marta98','Accept',NULL); +INSERT INTO spamilter VALUES(344,'SND','inwind.it','marianid','Accept',NULL); +INSERT INTO spamilter VALUES(345,'SND','inwind.it','marcosacconi','Accept',NULL); +INSERT INTO spamilter VALUES(346,'SND','inwind.it','jamex','Accept',NULL); +INSERT INTO spamilter VALUES(347,'SND','inwind.it','hairplanet','Accept',NULL); +INSERT INTO spamilter VALUES(348,'SND','inwind.it','gama77','Accept',NULL); +INSERT INTO spamilter VALUES(349,'SND','inwind.it','ibenu','Accept',NULL); +INSERT INTO spamilter VALUES(350,'SND','inwind.it','gianfranco.donato','Accept',NULL); +INSERT INTO spamilter VALUES(351,'SND','iol.it','spezzoli','Accept',NULL); +INSERT INTO spamilter VALUES(352,'SND','ipsoa.it','beatrice.distefano','Accept',NULL); +INSERT INTO spamilter VALUES(353,'SND','iredstone.com','rosa','Accept',NULL); +INSERT INTO spamilter VALUES(354,'SND','irfe.fr','r.silvestri','Accept',NULL); +INSERT INTO spamilter VALUES(355,'SND','irmaosrodrigues.pt','p.santos','Accept',NULL); +INSERT INTO spamilter VALUES(356,'SND','isabellasrl.it','','Accept',NULL); +INSERT INTO spamilter VALUES(357,'SND','isisbeachwear.com','maria','Accept',NULL); +INSERT INTO spamilter VALUES(358,'SND','istat.it','','Accept',NULL); +INSERT INTO spamilter VALUES(359,'SND','it.escada.com','','Accept',NULL); +INSERT INTO spamilter VALUES(360,'SND','it.fendi.com','','Accept',NULL); +INSERT INTO spamilter VALUES(361,'SND','it.pwc.com','barbara.redaelli','Accept',NULL); +INSERT INTO spamilter VALUES(362,'SND','it.rhenus.com','lorella.monti','Accept',NULL); +INSERT INTO spamilter VALUES(363,'SND','it.tuviagroup.co','carmela.festa','Accept',NULL); +INSERT INTO spamilter VALUES(364,'SND','it.tuviagroup.com','annamaria.pepe','Accept',NULL); +INSERT INTO spamilter VALUES(365,'SND','italmondo.com','','Accept',NULL); +INSERT INTO spamilter VALUES(366,'SND','italplasticindustriale.com','','Accept',NULL); +INSERT INTO spamilter VALUES(367,'SND','itcspa.it','','Accept',NULL); +INSERT INTO spamilter VALUES(368,'SND','itrgroup.it','amministrazione','Accept',NULL); +INSERT INTO spamilter VALUES(369,'SND','iwaweb.com','','Accept',NULL); +INSERT INTO spamilter VALUES(370,'SND','jackytex.it','','Accept',NULL); +INSERT INTO spamilter VALUES(371,'SND','jackytex-usa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(372,'SND','jakob-schlaepfer.ch','c.lacioppa','Accept',NULL); +INSERT INTO spamilter VALUES(373,'SND','jbrandjeans.com','','Accept',NULL); +INSERT INTO spamilter VALUES(374,'SND','jcrew.com','','Accept',NULL); +INSERT INTO spamilter VALUES(375,'SND','jenko-hk.com','jenko','Accept',NULL); +INSERT INTO spamilter VALUES(376,'SND','jerseymode.it','','Accept',NULL); +INSERT INTO spamilter VALUES(377,'SND','jilsander.com','','Accept',NULL); +INSERT INTO spamilter VALUES(378,'SND','jollymadison.com','res','Accept',NULL); +INSERT INTO spamilter VALUES(379,'SND','jollyplastic.com','','Accept',NULL); +INSERT INTO spamilter VALUES(380,'SND','julienmacdonald.com','justina','Accept',NULL); +INSERT INTO spamilter VALUES(381,'SND','juno.com','alombardi','Accept',NULL); +INSERT INTO spamilter VALUES(382,'SND','karpelle.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(383,'SND','kayleefashion.com','maryann','Accept',NULL); +INSERT INTO spamilter VALUES(384,'SND','kimmich-trikot.de','','Accept',NULL); +INSERT INTO spamilter VALUES(385,'SND','kiton.it','','Accept',NULL); +INSERT INTO spamilter VALUES(386,'SND','korea.com','sjtextile','Accept',NULL); +INSERT INTO spamilter VALUES(387,'SND','kulturruhr.com','carstens','Accept',NULL); +INSERT INTO spamilter VALUES(388,'SND','kunst-undwerbedruck.de','','Accept',NULL); +INSERT INTO spamilter VALUES(389,'SND','lafayette148.com','','Accept',NULL); +INSERT INTO spamilter VALUES(390,'SND','lakewill.com','amy','Accept',NULL); +INSERT INTO spamilter VALUES(391,'SND','lalignenyc.com','','Accept',NULL); +INSERT INTO spamilter VALUES(392,'SND','lambertolosani.com','','Accept',NULL); +INSERT INTO spamilter VALUES(393,'SND','lamim.com.tr','','Accept',NULL); +INSERT INTO spamilter VALUES(394,'SND','lanari.info','','Accept',NULL); +INSERT INTO spamilter VALUES(395,'SND','lancia.it','service','Accept',NULL); +INSERT INTO spamilter VALUES(396,'SND','laperla.com','','Accept',NULL); +INSERT INTO spamilter VALUES(397,'SND','lapetitesalope.com','','Accept',NULL); +INSERT INTO spamilter VALUES(398,'SND','lapulce.it','redazione','Accept',NULL); +INSERT INTO spamilter VALUES(399,'SND','larusmiani.it','alice','Accept',NULL); +INSERT INTO spamilter VALUES(400,'SND','laspola.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(401,'SND','laurel.de','','Accept',NULL); +INSERT INTO spamilter VALUES(402,'SND','leggiadro.com','','Accept',NULL); +INSERT INTO spamilter VALUES(403,'SND','lemiconfezioni.it','','Accept',NULL); +INSERT INTO spamilter VALUES(404,'SND','leonaedmiston.com','','Accept',NULL); +INSERT INTO spamilter VALUES(405,'SND','leonardparis.com','studio','Accept',NULL); +INSERT INTO spamilter VALUES(406,'SND','leonet.it','magia','Accept',NULL); +INSERT INTO spamilter VALUES(407,'SND','leonet.it','m.mariaconcetta','Accept',NULL); +INSERT INTO spamilter VALUES(408,'SND','leonet.it','calzpatrizia','Accept',NULL); +INSERT INTO spamilter VALUES(409,'SND','lescopains.com','','Accept',NULL); +INSERT INTO spamilter VALUES(410,'SND','libero.it','tfrancy61','Accept',NULL); +INSERT INTO spamilter VALUES(411,'SND','libero.it','suxemykant','Accept',NULL); +INSERT INTO spamilter VALUES(412,'SND','libero.it','ssecli','Accept',NULL); +INSERT INTO spamilter VALUES(413,'SND','libero.it','simoneginanneschi','Accept',NULL); +INSERT INTO spamilter VALUES(414,'SND','libero.it','pepotex','Accept',NULL); +INSERT INTO spamilter VALUES(415,'SND','libero.it','molteni.ivano','Accept',NULL); +INSERT INTO spamilter VALUES(416,'SND','libero.it','mirco.turini','Accept',NULL); +INSERT INTO spamilter VALUES(417,'SND','libero.it','marino.59','Accept',NULL); +INSERT INTO spamilter VALUES(418,'SND','libero.it','leonardomichelini62','Accept',NULL); +INSERT INTO spamilter VALUES(419,'SND','libero.it','konny','Accept',NULL); +INSERT INTO spamilter VALUES(420,'SND','libero.it','j-ax-11','Accept',NULL); +INSERT INTO spamilter VALUES(421,'SND','libero.it','gio.dellaquila','Accept',NULL); +INSERT INTO spamilter VALUES(422,'SND','libero.it','gianni.innocenti1','Accept',NULL); +INSERT INTO spamilter VALUES(423,'SND','libero.it','giacomo.bigi','Accept',NULL); +INSERT INTO spamilter VALUES(424,'SND','libero.it','fabio.fontani','Accept',NULL); +INSERT INTO spamilter VALUES(425,'SND','libero.it','delfrance','Accept',NULL); +INSERT INTO spamilter VALUES(426,'SND','libero.it','dav.bart','Accept',NULL); +INSERT INTO spamilter VALUES(427,'SND','libero.it','danberanger','Accept',NULL); +INSERT INTO spamilter VALUES(428,'SND','libero.it','clara.gar','Accept',NULL); +INSERT INTO spamilter VALUES(429,'SND','libero.it','bisionte','Accept',NULL); +INSERT INTO spamilter VALUES(430,'SND','libero.it','alcafilsrl','Accept',NULL); +INSERT INTO spamilter VALUES(431,'SND','libero.it','tip.bisenzio','Accept',NULL); +INSERT INTO spamilter VALUES(432,'SND','libero.it','flli.rosina','Accept',NULL); +INSERT INTO spamilter VALUES(433,'SND','libero.it','carrballerini','Accept',NULL); +INSERT INTO spamilter VALUES(434,'SND','libero.it','ale.bertini84','Accept',NULL); +INSERT INTO spamilter VALUES(435,'SND','libero.it.','mariovilloresi','Accept',NULL); +INSERT INTO spamilter VALUES(436,'SND','liberty.co.uk','tdepeon','Accept',NULL); +INSERT INTO spamilter VALUES(437,'SND','lidabaday.com','','Accept',NULL); +INSERT INTO spamilter VALUES(438,'SND','lilipetrus.it','','Accept',NULL); +INSERT INTO spamilter VALUES(439,'SND','lince.it','invioservizi','Accept',NULL); +INSERT INTO spamilter VALUES(440,'SND','lineapiu.com','','Accept',NULL); +INSERT INTO spamilter VALUES(441,'SND','liste.rete.toscana.it','','Accept',NULL); +INSERT INTO spamilter VALUES(442,'SND','live.it','rick93','Accept',NULL); +INSERT INTO spamilter VALUES(443,'SND','liz.com','','Accept',NULL); +INSERT INTO spamilter VALUES(444,'SND','loewe.es','aanidolo','Accept',NULL); +INSERT INTO spamilter VALUES(445,'SND','lorelmiss.it','c.cattini','Accept',NULL); +INSERT INTO spamilter VALUES(446,'SND','louisekennedy.com','','Accept',NULL); +INSERT INTO spamilter VALUES(447,'SND','lucahettner.com','silvia.disanto','Accept',NULL); +INSERT INTO spamilter VALUES(448,'SND','lucianobarbetta.it','','Accept',NULL); +INSERT INTO spamilter VALUES(449,'SND','mac.com','','Accept',NULL); +INSERT INTO spamilter VALUES(450,'SND','madamar.com','','Accept',NULL); +INSERT INTO spamilter VALUES(451,'SND','mail.my.nokia.com','mynokia','Accept',NULL); +INSERT INTO spamilter VALUES(452,'SND','mail.my.nokia.com','mynokia','Accept',NULL); +INSERT INTO spamilter VALUES(453,'SND','mail.ru','nelva.brest','Accept',NULL); +INSERT INTO spamilter VALUES(454,'SND','manisrl.com','','Accept',NULL); +INSERT INTO spamilter VALUES(455,'SND','manpower.it','pamela.graziani','Accept',NULL); +INSERT INTO spamilter VALUES(456,'SND','marc-cain.de','','Accept',NULL); +INSERT INTO spamilter VALUES(457,'SND','marchifildi.com','','Accept',NULL); +INSERT INTO spamilter VALUES(458,'SND','marcjacobs.com','','Accept',NULL); +INSERT INTO spamilter VALUES(459,'SND','maredimoda.com','','Accept',NULL); +INSERT INTO spamilter VALUES(460,'SND','marex.it','','Accept',NULL); +INSERT INTO spamilter VALUES(461,'SND','maron-it.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(462,'SND','maryfashion.net','','Accept',NULL); +INSERT INTO spamilter VALUES(463,'SND','maryling.com','jo.lee','Accept',NULL); +INSERT INTO spamilter VALUES(464,'SND','matches.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(465,'SND','matthewwilliamson.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(466,'SND','maulespa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(467,'SND','mauriceward.com','beatrice.squeri','Accept',NULL); +INSERT INTO spamilter VALUES(468,'SND','mavilla.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(469,'SND','maxsport.com','maxisport','Accept',NULL); +INSERT INTO spamilter VALUES(470,'SND','mcdonald.it','','Accept',NULL); +INSERT INTO spamilter VALUES(471,'SND','mclink.it','','Accept',NULL); +INSERT INTO spamilter VALUES(472,'SND','me.com','','Accept',NULL); +INSERT INTO spamilter VALUES(473,'SND','melanj.com','','Accept',NULL); +INSERT INTO spamilter VALUES(474,'SND','mellinda-mae.com','','Accept',NULL); +INSERT INTO spamilter VALUES(475,'SND','menphis.com','','Accept',NULL); +INSERT INTO spamilter VALUES(476,'SND','merliedilizia.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(477,'SND','mfgirbaud.com','simorre.claudia','Accept',NULL); +INSERT INTO spamilter VALUES(478,'SND','miamibabybeachwear.com','lindar','Accept',NULL); +INSERT INTO spamilter VALUES(479,'SND','michaelkors.com','','Accept',NULL); +INSERT INTO spamilter VALUES(480,'SND','milagros.com','brian_wai','Accept',NULL); +INSERT INTO spamilter VALUES(481,'SND','milaschon.com','','Accept',NULL); +INSERT INTO spamilter VALUES(482,'SND','miliam.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(483,'SND','minigolf-follonica.it','bobbe','Accept',NULL); +INSERT INTO spamilter VALUES(484,'SND','minihotel.it','portello','Accept',NULL); +INSERT INTO spamilter VALUES(485,'SND','misan.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(486,'SND','misan.plus.com','','Accept',NULL); +INSERT INTO spamilter VALUES(487,'SND','mkrm.rakuten.co.jp','greeting-pc','Accept',NULL); +INSERT INTO spamilter VALUES(488,'SND','mlcollection.nl','marjans','Accept',NULL); +INSERT INTO spamilter VALUES(489,'SND','mls.vodafone.it','vodafone.it','Accept',NULL); +INSERT INTO spamilter VALUES(490,'SND','moby.it','','Accept',NULL); +INSERT INTO spamilter VALUES(491,'SND','modain.it','federica.bertoni','Accept',NULL); +INSERT INTO spamilter VALUES(492,'SND','modanicola-int.com','saul','Accept',NULL); +INSERT INTO spamilter VALUES(493,'SND','modasystemsrl.it','m.fugazzi','Accept',NULL); +INSERT INTO spamilter VALUES(494,'SND','modit.eu','acquisti','Accept',NULL); +INSERT INTO spamilter VALUES(495,'SND','mohsinalidesign.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(496,'SND','monarchysound.com','','Accept',NULL); +INSERT INTO spamilter VALUES(497,'SND','mondadori.it','','Accept',NULL); +INSERT INTO spamilter VALUES(498,'SND','montevarchi0330.com','andrea','Accept',NULL); +INSERT INTO spamilter VALUES(499,'SND','monticolor.com','','Accept',NULL); +INSERT INTO spamilter VALUES(500,'SND','moodnet.it','rossana','Accept',NULL); +INSERT INTO spamilter VALUES(501,'SND','morettispa.com','a.berti','Accept',NULL); +INSERT INTO spamilter VALUES(502,'SND','moserdesign.co.at','nicole.rohrstorfer','Accept',NULL); +INSERT INTO spamilter VALUES(503,'SND','mpdmodyva.it','p.presenti','Accept',NULL); +INSERT INTO spamilter VALUES(504,'SND','mps.it','','Accept',NULL); +INSERT INTO spamilter VALUES(505,'SND','mpscapitalservices.it','','Accept',NULL); +INSERT INTO spamilter VALUES(506,'SND','msi.biglobe.ne.jp','m-mikuri','Accept',NULL); +INSERT INTO spamilter VALUES(507,'SND','msn.com','siyihuangcsm','Accept',NULL); +INSERT INTO spamilter VALUES(508,'SND','msn.com','andreabagiardi','Accept',NULL); +INSERT INTO spamilter VALUES(509,'SND','multiserviceam.it','a.macinai','Accept',NULL); +INSERT INTO spamilter VALUES(510,'SND','mvs.caixagalicia.es','mvse','Accept',NULL); +INSERT INTO spamilter VALUES(511,'SND','nadyatoto.com','','Accept',NULL); +INSERT INTO spamilter VALUES(512,'SND','narcisorodriguez.com','','Accept',NULL); +INSERT INTO spamilter VALUES(513,'SND','nbnautomazione.it','','Accept',NULL); +INSERT INTO spamilter VALUES(514,'SND','netvigator.com','pgfredy','Accept',NULL); +INSERT INTO spamilter VALUES(515,'SND','networkaias.it','registrazione','Accept',NULL); +INSERT INTO spamilter VALUES(516,'SND','newcoffee.it','','Accept',NULL); +INSERT INTO spamilter VALUES(517,'SND','neweuromagliasrl.it','','Accept',NULL); +INSERT INTO spamilter VALUES(518,'SND','newform.it','newform','Accept',NULL); +INSERT INTO spamilter VALUES(519,'SND','newsletter.groz-beckert.com','','Accept',NULL); +INSERT INTO spamilter VALUES(520,'SND','newsletter.tele2.it','mailing','Accept',NULL); +INSERT INTO spamilter VALUES(521,'SND','nh-hotels.com','','Accept',NULL); +INSERT INTO spamilter VALUES(522,'SND','nina-ricci.fr','ana.deribeiro','Accept',NULL); +INSERT INTO spamilter VALUES(523,'SND','notification.zinio.net','','Accept',NULL); +INSERT INTO spamilter VALUES(524,'SND','novatours-dmc.com','maredimoda','Accept',NULL); +INSERT INTO spamilter VALUES(525,'SND','nplmail.com','ildesco','Accept',NULL); +INSERT INTO spamilter VALUES(526,'SND','nuovautospa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(527,'SND','nuoyuan.com','mary','Accept',NULL); +INSERT INTO spamilter VALUES(528,'SND','odlr.com','','Accept',NULL); +INSERT INTO spamilter VALUES(529,'SND','offerte.alitalia.it','mailing','Accept',NULL); +INSERT INTO spamilter VALUES(530,'SND','officedepot.com','laura.girolimoni','Accept',NULL); +INSERT INTO spamilter VALUES(531,'SND','omnianetwork.it','webmaster.mediasetpremium','Accept',NULL); +INSERT INTO spamilter VALUES(532,'SND','ongetta.it','','Accept',NULL); +INSERT INTO spamilter VALUES(533,'SND','orange.fr','silvi.drooper2','Accept',NULL); +INSERT INTO spamilter VALUES(534,'SND','orange.fr','maxime.drooper2','Accept',NULL); +INSERT INTO spamilter VALUES(535,'SND','orange.fr','katy.drooper2','Accept',NULL); +INSERT INTO spamilter VALUES(536,'SND','orange.fr','julien.drooper2','Accept',NULL); +INSERT INTO spamilter VALUES(537,'SND','otsspa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(538,'SND','pacbell.net','jgerard5','Accept',NULL); +INSERT INTO spamilter VALUES(539,'SND','palzilieri.com','','Accept',NULL); +INSERT INTO spamilter VALUES(540,'SND','panbianco.com','','Accept',NULL); +INSERT INTO spamilter VALUES(541,'SND','paolafrani.com','francesca.urbini','Accept',NULL); +INSERT INTO spamilter VALUES(542,'SND','paoloni.it','vanna.quattrini','Accept',NULL); +INSERT INTO spamilter VALUES(543,'SND','papifabio.com','','Accept',NULL); +INSERT INTO spamilter VALUES(544,'SND','parah.com','','Accept',NULL); +INSERT INTO spamilter VALUES(545,'SND','pascalmillet.com','pmillet','Accept',NULL); +INSERT INTO spamilter VALUES(546,'SND','paularaia.com','clara','Accept',NULL); +INSERT INTO spamilter VALUES(547,'SND','paularaia.com.br','clara','Accept',NULL); +INSERT INTO spamilter VALUES(548,'SND','pellemoda.it','valentina.giglioli','Accept',NULL); +INSERT INTO spamilter VALUES(549,'SND','pepotex.it','','Accept',NULL); +INSERT INTO spamilter VALUES(550,'SND','percassi.it','francesca.paolini','Accept',NULL); +INSERT INTO spamilter VALUES(551,'SND','peridotlondon.co.uk','','Accept',NULL); +INSERT INTO spamilter VALUES(552,'SND','petarpetrov.com','mail','Accept',NULL); +INSERT INTO spamilter VALUES(553,'SND','peterpilotto.com','','Accept',NULL); +INSERT INTO spamilter VALUES(554,'SND','phicollection.com','bettylew','Accept',NULL); +INSERT INTO spamilter VALUES(555,'SND','philossrl.com','','Accept',NULL); +INSERT INTO spamilter VALUES(556,'SND','piazzasempione.com','','Accept',NULL); +INSERT INTO spamilter VALUES(557,'SND','pircheralfred.it','roland','Accept',NULL); +INSERT INTO spamilter VALUES(558,'SND','polipeli.com','','Accept',NULL); +INSERT INTO spamilter VALUES(559,'SND','poliziadistato.it','polstradasez.al','Accept',NULL); +INSERT INTO spamilter VALUES(560,'SND','poloralphlauren.com','','Accept',NULL); +INSERT INTO spamilter VALUES(561,'SND','polynt.com','luca.bonci','Accept',NULL); +INSERT INTO spamilter VALUES(562,'SND','polynt.it','','Accept',NULL); +INSERT INTO spamilter VALUES(563,'SND','posteitaliane.it','ferrin24','Accept',NULL); +INSERT INTO spamilter VALUES(564,'SND','power-one.com','andrea.barbagli','Accept',NULL); +INSERT INTO spamilter VALUES(565,'SND','pozzielecta.it','','Accept',NULL); +INSERT INTO spamilter VALUES(566,'SND','prabalgurung.com','','Accept',NULL); +INSERT INTO spamilter VALUES(567,'SND','prada.com','','Accept',NULL); +INSERT INTO spamilter VALUES(568,'SND','pratoexpo.com','','Accept',NULL); +INSERT INTO spamilter VALUES(569,'SND','previmoda.it','','Accept',NULL); +INSERT INTO spamilter VALUES(570,'SND','previndai.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(571,'SND','prltdcr.com','tdcr','Accept',NULL); +INSERT INTO spamilter VALUES(572,'SND','proenzaschouler.com','','Accept',NULL); +INSERT INTO spamilter VALUES(573,'SND','promotex.info','chiara','Accept',NULL); +INSERT INTO spamilter VALUES(574,'SND','pucci.com','p.gandiol','Accept',NULL); +INSERT INTO spamilter VALUES(575,'SND','puettmann-tex.com','','Accept',NULL); +INSERT INTO spamilter VALUES(576,'SND','purotatto.com','c.brambilla','Accept',NULL); +INSERT INTO spamilter VALUES(577,'SND','quaglifioravanti','cinziabonechi','Accept',NULL); +INSERT INTO spamilter VALUES(578,'SND','qualitex.it','','Accept',NULL); +INSERT INTO spamilter VALUES(579,'SND','rafsimons.com','','Accept',NULL); +INSERT INTO spamilter VALUES(580,'SND','ralphlauren.com','','Accept',NULL); +INSERT INTO spamilter VALUES(581,'SND','ratti.it','','Accept',NULL); +INSERT INTO spamilter VALUES(582,'SND','raumertrade.com','a.covallero','Accept',NULL); +INSERT INTO spamilter VALUES(583,'SND','redstone.com.cn','','Accept',NULL); +INSERT INTO spamilter VALUES(584,'SND','redstone-hautecouture.com','rosa','Accept',NULL); +INSERT INTO spamilter VALUES(585,'SND','reedkrakoff.com','ahernandez','Accept',NULL); +INSERT INTO spamilter VALUES(586,'SND','reemacra.com','kendeld','Accept',NULL); +INSERT INTO spamilter VALUES(587,'SND','regent-tailor.com','ute.hoffmann','Accept',NULL); +INSERT INTO spamilter VALUES(588,'SND','reggianistretch.it','piera','Accept',NULL); +INSERT INTO spamilter VALUES(589,'SND','register.it','','Accept',NULL); +INSERT INTO spamilter VALUES(590,'SND','register-europe.com','','Accept',NULL); +INSERT INTO spamilter VALUES(591,'SND','renatocorti.it','','Accept',NULL); +INSERT INTO spamilter VALUES(592,'SND','reporterviaggi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(593,'SND','reys.it','','Accept',NULL); +INSERT INTO spamilter VALUES(594,'SND','rfi.it','g.benucci','Accept',NULL); +INSERT INTO spamilter VALUES(595,'SND','riekeveltel.com','rc','Accept',NULL); +INSERT INTO spamilter VALUES(596,'SND','ripheat.com','jabs','Accept',NULL); +INSERT INTO spamilter VALUES(597,'SND','robertocavalli.it','','Accept',NULL); +INSERT INTO spamilter VALUES(598,'SND','royalspirit.com.hk','','Accept',NULL); +INSERT INTO spamilter VALUES(599,'SND','sacchiniarreda.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(600,'SND','sacconimarco.191.it','architetto','Accept',NULL); +INSERT INTO spamilter VALUES(601,'SND','safil.it','','Accept',NULL); +INSERT INTO spamilter VALUES(602,'SND','safil-suedwollegroup.com','','Accept',NULL); +INSERT INTO spamilter VALUES(603,'SND','sangrilla.com','info','Accept',NULL); +INSERT INTO spamilter VALUES(604,'SND','santagostino.com','','Accept',NULL); +INSERT INTO spamilter VALUES(605,'SND','sartoriarossi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(606,'SND','savana.com.cn','','Accept',NULL); +INSERT INTO spamilter VALUES(607,'SND','scarlini.com','','Accept',NULL); +INSERT INTO spamilter VALUES(608,'SND','schulthess.it','infolog','Accept',NULL); +INSERT INTO spamilter VALUES(609,'SND','scsgmbh.net','komnik','Accept',NULL); +INSERT INTO spamilter VALUES(610,'SND','sda.it','','Accept',NULL); +INSERT INTO spamilter VALUES(611,'SND','sdam.it','newsletter','Accept',NULL); +INSERT INTO spamilter VALUES(612,'SND','secure8.virtualatlantic.com','mailer-daemon','Accept',NULL); +INSERT INTO spamilter VALUES(613,'SND','sedagiyim.com','zeynep.colak','Accept',NULL); +INSERT INTO spamilter VALUES(614,'SND','seed.net.tw','','Accept',NULL); +INSERT INTO spamilter VALUES(615,'SND','selectra.it','f.denardi','Accept',NULL); +INSERT INTO spamilter VALUES(616,'SND','sella.it','onlinepay','Accept',NULL); +INSERT INTO spamilter VALUES(617,'SND','server1.dalani.it','www-data','Accept',NULL); +INSERT INTO spamilter VALUES(618,'SND','set-point.it','letizia','Accept',NULL); +INSERT INTO spamilter VALUES(619,'SND','sft-usa.com','','Accept',NULL); +INSERT INTO spamilter VALUES(620,'SND','sgrevi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(621,'SND','shamask.com','cecilia','Accept',NULL); +INSERT INTO spamilter VALUES(622,'SND','showdetails.it','','Accept',NULL); +INSERT INTO spamilter VALUES(623,'SND','sicapinformatica.it','','Accept',NULL); +INSERT INTO spamilter VALUES(624,'SND','sici93.pt','ep108938l','Accept',NULL); +INSERT INTO spamilter VALUES(625,'SND','simonerocha.com','','Accept',NULL); +INSERT INTO spamilter VALUES(626,'SND','sinv.com','marta.toniolo@','Accept',NULL); +INSERT INTO spamilter VALUES(627,'SND','sirnet.it','dwsirnetm','Accept',NULL); +INSERT INTO spamilter VALUES(628,'SND','sittam.it','r.romani','Accept',NULL); +INSERT INTO spamilter VALUES(629,'SND','skynetroma.com','davideb','Accept',NULL); +INSERT INTO spamilter VALUES(630,'SND','snav.it','','Accept',NULL); +INSERT INTO spamilter VALUES(631,'SND','societafashion.com','emel','Accept',NULL); +INSERT INTO spamilter VALUES(632,'SND','soniarykiel.fr','bertrand.f','Accept',NULL); +INSERT INTO spamilter VALUES(633,'SND','spes.fip.it','','Accept',NULL); +INSERT INTO spamilter VALUES(634,'SND','sportalm.at','','Accept',NULL); +INSERT INTO spamilter VALUES(635,'SND','sqll.mauriceward.com','www-data','Accept',NULL); +INSERT INTO spamilter VALUES(636,'SND','srar.com','pike23','Accept',NULL); +INSERT INTO spamilter VALUES(637,'SND','staff.virgilio.it','alice_league_team','Accept',NULL); +INSERT INTO spamilter VALUES(638,'SND','staffinternational.com','','Accept',NULL); +INSERT INTO spamilter VALUES(639,'SND','stallionnyc.com','emily','Accept',NULL); +INSERT INTO spamilter VALUES(640,'SND','stizzoli.net','produzione','Accept',NULL); +INSERT INTO spamilter VALUES(641,'SND','strenesse.com','','Accept',NULL); +INSERT INTO spamilter VALUES(642,'SND','student.unisi.it','torricini','Accept',NULL); +INSERT INTO spamilter VALUES(643,'SND','studio-11.it','lauren.maccarthy','Accept',NULL); +INSERT INTO spamilter VALUES(644,'SND','studiocecconi.it','cecconi','Accept',NULL); +INSERT INTO spamilter VALUES(645,'SND','studiodelvita.com','','Accept',NULL); +INSERT INTO spamilter VALUES(646,'SND','studiofarosrl.it','b.marchi','Accept',NULL); +INSERT INTO spamilter VALUES(647,'SND','studioroscini.it','','Accept',NULL); +INSERT INTO spamilter VALUES(648,'SND','studiotecnicomariani.com','daniele','Accept',NULL); +INSERT INTO spamilter VALUES(649,'SND','studiotoscanosrl.it','toscano','Accept',NULL); +INSERT INTO spamilter VALUES(650,'SND','supereva.it','andreagabbrielli','Accept',NULL); +INSERT INTO spamilter VALUES(651,'SND','swinger.it','','Accept',NULL); +INSERT INTO spamilter VALUES(652,'SND','swissonline.ch','ute.soldini','Accept',NULL); +INSERT INTO spamilter VALUES(653,'SND','technores.it','v.cianchi','Accept',NULL); +INSERT INTO spamilter VALUES(654,'SND','tecnofreight.it','gloria','Accept',NULL); +INSERT INTO spamilter VALUES(655,'SND','tele2.it','tfrancy','Accept',NULL); +INSERT INTO spamilter VALUES(656,'SND','telecomitalia.it','','Accept',NULL); +INSERT INTO spamilter VALUES(657,'SND','telefonica.net','riatex','Accept',NULL); +INSERT INTO spamilter VALUES(658,'SND','teletu.it','tfrancy','Accept',NULL); +INSERT INTO spamilter VALUES(659,'SND','tenniscanada.com','impetuoustlegion','Accept',NULL); +INSERT INTO spamilter VALUES(660,'SND','termoplast.it','','Accept',NULL); +INSERT INTO spamilter VALUES(661,'SND','terrealte.net','acquisti','Accept',NULL); +INSERT INTO spamilter VALUES(662,'SND','tessiturapuntomaglia.it','','Accept',NULL); +INSERT INTO spamilter VALUES(663,'SND','texpro.it','','Accept',NULL); +INSERT INTO spamilter VALUES(664,'SND','tf2000.it','','Accept',NULL); +INSERT INTO spamilter VALUES(665,'SND','thefourthcompany.com','','Accept',NULL); +INSERT INTO spamilter VALUES(666,'SND','thenativestranger.com','','Accept',NULL); +INSERT INTO spamilter VALUES(667,'SND','theory.com','','Accept',NULL); +INSERT INTO spamilter VALUES(668,'SND','tiessegroup.eu','bolledoganali','Accept',NULL); +INSERT INTO spamilter VALUES(669,'SND','tin.it','uangiol','Accept',NULL); +INSERT INTO spamilter VALUES(670,'SND','tin.it','seperuz','Accept',NULL); +INSERT INTO spamilter VALUES(671,'SND','tin.it','ricci.luca2','Accept',NULL); +INSERT INTO spamilter VALUES(672,'SND','tin.it','pamillabimba','Accept',NULL); +INSERT INTO spamilter VALUES(673,'SND','tin.it','ottoboni','Accept',NULL); +INSERT INTO spamilter VALUES(674,'SND','tin.it','mario.ciaba','Accept',NULL); +INSERT INTO spamilter VALUES(675,'SND','tin.it','lucapall','Accept',NULL); +INSERT INTO spamilter VALUES(676,'SND','tin.it','lapoligrafica','Accept',NULL); +INSERT INTO spamilter VALUES(677,'SND','tin.it','iagsnc.iagsnc','Accept',NULL); +INSERT INTO spamilter VALUES(678,'SND','tin.it','gallianobisi','Accept',NULL); +INSERT INTO spamilter VALUES(679,'SND','tin.it','fi.giampi','Accept',NULL); +INSERT INTO spamilter VALUES(680,'SND','tin.it','emanuele.cresti','Accept',NULL); +INSERT INTO spamilter VALUES(681,'SND','tin.it','abizzarri','Accept',NULL); +INSERT INTO spamilter VALUES(682,'SND','tin.it','valtergio','Accept',NULL); +INSERT INTO spamilter VALUES(683,'SND','tin.it','puggelligianni','Accept',NULL); +INSERT INTO spamilter VALUES(684,'SND','tin.it','carrballerini','Accept',NULL); +INSERT INTO spamilter VALUES(685,'SND','tin.it','alvispo','Accept',NULL); +INSERT INTO spamilter VALUES(686,'SND','tin.it','acebobbetin','Accept',NULL); +INSERT INTO spamilter VALUES(687,'SND','tintoriarosina.it','','Accept',NULL); +INSERT INTO spamilter VALUES(688,'SND','tintoriascr.it','','Accept',NULL); +INSERT INTO spamilter VALUES(689,'SND','tintoriaviola.com','','Accept',NULL); +INSERT INTO spamilter VALUES(690,'SND','tiscali.it','nika.colzi','Accept',NULL); +INSERT INTO spamilter VALUES(691,'SND','tiscali.it','minigolfpaolo','Accept',NULL); +INSERT INTO spamilter VALUES(692,'SND','tiscali.it','michy.c85','Accept',NULL); +INSERT INTO spamilter VALUES(693,'SND','tiscali.it','danybonetti','Accept',NULL); +INSERT INTO spamilter VALUES(694,'SND','tiscali.it','areco','Accept',NULL); +INSERT INTO spamilter VALUES(695,'SND','tiscali.it','sntcld','Accept',NULL); +INSERT INTO spamilter VALUES(696,'SND','tiscali.it','minigolfpaolo','Accept',NULL); +INSERT INTO spamilter VALUES(697,'SND','tiscali.it','cbonci','Accept',NULL); +INSERT INTO spamilter VALUES(698,'SND','tiscalinet.it','erremari','Accept',NULL); +INSERT INTO spamilter VALUES(699,'SND','tntitaly.it','','Accept',NULL); +INSERT INTO spamilter VALUES(700,'SND','todsgroup.com','','Accept',NULL); +INSERT INTO spamilter VALUES(701,'SND','tombolini.it','','Accept',NULL); +INSERT INTO spamilter VALUES(702,'SND','tommy.com','oscar.lenderink','Accept',NULL); +INSERT INTO spamilter VALUES(703,'SND','tomtom.com','','Accept',NULL); +INSERT INTO spamilter VALUES(704,'SND','t-online.de','erika.puettmann','Accept',NULL); +INSERT INTO spamilter VALUES(705,'SND','toppy.com.hk','lindachau','Accept',NULL); +INSERT INTO spamilter VALUES(706,'SND','toscano100x100.it','','Accept',NULL); +INSERT INTO spamilter VALUES(707,'SND','transarnotrasporti.it','antonella','Accept',NULL); +INSERT INTO spamilter VALUES(708,'SND','tricotchic.it','','Accept',NULL); +INSERT INTO spamilter VALUES(709,'SND','trmcederna.it','giorgio.ghirardi','Accept',NULL); +INSERT INTO spamilter VALUES(710,'SND','trovocasa.it','staff-noreply','Accept',NULL); +INSERT INTO spamilter VALUES(711,'SND','ttmail.com','emelavsar','Accept',NULL); +INSERT INTO spamilter VALUES(712,'SND','tufilset.com','','Accept',NULL); +INSERT INTO spamilter VALUES(713,'SND','tuleh.com','mei','Accept',NULL); +INSERT INTO spamilter VALUES(714,'SND','twsonline.it','g.santilli','Accept',NULL); +INSERT INTO spamilter VALUES(715,'SND','ubibanca.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(716,'SND','ui.prato.it','','Accept',NULL); +INSERT INTO spamilter VALUES(717,'SND','uk.celine.com','e.ziller','Accept',NULL); +INSERT INTO spamilter VALUES(718,'SND','umana.it','infomtv','Accept',NULL); +INSERT INTO spamilter VALUES(719,'SND','unahotels.it','','Accept',NULL); +INSERT INTO spamilter VALUES(720,'SND','unibind.it','g.belli','Accept',NULL); +INSERT INTO spamilter VALUES(721,'SND','unicreditbanca.it','','Accept',NULL); +INSERT INTO spamilter VALUES(722,'SND','unicreditgroup.eu','','Accept',NULL); +INSERT INTO spamilter VALUES(723,'SND','unicreditimpresa.it','','Accept',NULL); +INSERT INTO spamilter VALUES(724,'SND','unifi.it','','Accept',NULL); +INSERT INTO spamilter VALUES(725,'SND','unomaglia.it','','Accept',NULL); +INSERT INTO spamilter VALUES(726,'SND','ups.com','','Accept',NULL); +INSERT INTO spamilter VALUES(727,'SND','urcaarezzo.it','','Accept',NULL); +INSERT INTO spamilter VALUES(728,'SND','usl8.toscana.it','merj.peebes','Accept',NULL); +INSERT INTO spamilter VALUES(729,'SND','vagotex.it','','Accept',NULL); +INSERT INTO spamilter VALUES(730,'SND','val.it','mario','Accept',NULL); +INSERT INTO spamilter VALUES(731,'SND','val.it','ced.nadia','Accept',NULL); +INSERT INTO spamilter VALUES(732,'SND','vanlaack.de','','Accept',NULL); +INSERT INTO spamilter VALUES(733,'SND','venacavanyc.com','lisa','Accept',NULL); +INSERT INTO spamilter VALUES(734,'SND','venusprom.it','r.masetto','Accept',NULL); +INSERT INTO spamilter VALUES(735,'SND','veramont.com','swen.zeller','Accept',NULL); +INSERT INTO spamilter VALUES(736,'SND','verawang.com','kgalassi','Accept',NULL); +INSERT INTO spamilter VALUES(737,'SND','versace.it','','Accept',NULL); +INSERT INTO spamilter VALUES(738,'SND','viadelleperle.it','','Accept',NULL); +INSERT INTO spamilter VALUES(739,'SND','viaggiavventurenelmondo.it','','Accept',NULL); +INSERT INTO spamilter VALUES(740,'SND','villacaprareccia.it','info','Accept',NULL); +INSERT INTO spamilter VALUES(741,'SND','virgilio.it','zabuch','Accept',NULL); +INSERT INTO spamilter VALUES(742,'SND','virgilio.it','vilmadragone','Accept',NULL); +INSERT INTO spamilter VALUES(743,'SND','virgilio.it','valeriogiachi','Accept',NULL); +INSERT INTO spamilter VALUES(744,'SND','virgilio.it','silvia.sordi','Accept',NULL); +INSERT INTO spamilter VALUES(745,'SND','virgilio.it','sabiamarco','Accept',NULL); +INSERT INTO spamilter VALUES(746,'SND','virgilio.it','rossanadiana','Accept',NULL); +INSERT INTO spamilter VALUES(747,'SND','virgilio.it','pietrogritti1','Accept',NULL); +INSERT INTO spamilter VALUES(748,'SND','virgilio.it','pietrogritti','Accept',NULL); +INSERT INTO spamilter VALUES(749,'SND','virgilio.it','mr.jocker','Accept',NULL); +INSERT INTO spamilter VALUES(750,'SND','virgilio.it','maurizioconti76','Accept',NULL); +INSERT INTO spamilter VALUES(751,'SND','virgilio.it','healey','Accept',NULL); +INSERT INTO spamilter VALUES(752,'SND','virgilio.it','flanella.bike','Accept',NULL); +INSERT INTO spamilter VALUES(753,'SND','virgilio.it','cucitosrl','Accept',NULL); +INSERT INTO spamilter VALUES(754,'SND','virgilio.it','cinicaldaie','Accept',NULL); +INSERT INTO spamilter VALUES(755,'SND','virgilio.it','bitossiandrea','Accept',NULL); +INSERT INTO spamilter VALUES(756,'SND','virgilio.it','albertolabbate','Accept',NULL); +INSERT INTO spamilter VALUES(757,'SND','virgilio.it','roberto.pierazzi2','Accept',NULL); +INSERT INTO spamilter VALUES(758,'SND','virgilio.it','manufai','Accept',NULL); +INSERT INTO spamilter VALUES(759,'SND','virgilio.it','fabio.fontani2','Accept',NULL); +INSERT INTO spamilter VALUES(760,'SND','vitalirappresentanze.it','ufficio','Accept',NULL); +INSERT INTO spamilter VALUES(761,'SND','vitaminaswim.com','','Accept',NULL); +INSERT INTO spamilter VALUES(762,'SND','vxlnet.it','luana.laurenzi','Accept',NULL); +INSERT INTO spamilter VALUES(763,'SND','vxlnet.it','luana','Accept',NULL); +INSERT INTO spamilter VALUES(764,'SND','vxlnet.it','giovanni.altamura','Accept',NULL); +INSERT INTO spamilter VALUES(765,'SND','walter_genuin.com','wg','Accept',NULL); +INSERT INTO spamilter VALUES(766,'SND','walter-genuin.com','wg','Accept',NULL); +INSERT INTO spamilter VALUES(767,'SND','wanadoo.fr','hervelleroux','Accept',NULL); +INSERT INTO spamilter VALUES(768,'SND','wanadoo.fr','drooper2','Accept',NULL); +INSERT INTO spamilter VALUES(769,'SND','wanadoo.fr','claudeduval4','Accept',NULL); +INSERT INTO spamilter VALUES(770,'SND','wanadoo.fr','alice.drooper2','Accept',NULL); +INSERT INTO spamilter VALUES(771,'SND','wanadoo.fr','geneve.skaia','Accept',NULL); +INSERT INTO spamilter VALUES(772,'SND','warnerhomevideo.it','webmaster','Accept',NULL); +INSERT INTO spamilter VALUES(773,'SND','wawarnerhomevideo.it','webmaster','Accept',NULL); +INSERT INTO spamilter VALUES(774,'SND','web.de','modadarinka','Accept',NULL); +INSERT INTO spamilter VALUES(775,'SND','webeventi.it','null','Accept',NULL); +INSERT INTO spamilter VALUES(776,'SND','welcome.aexp.com','americanexpress','Accept',NULL); +INSERT INTO spamilter VALUES(777,'SND','wgsn.com','','Accept',NULL); +INSERT INTO spamilter VALUES(778,'SND','willowltd.com','yvonne','Accept',NULL); +INSERT INTO spamilter VALUES(779,'SND','wooow.it','acquisti2t','Accept',NULL); +INSERT INTO spamilter VALUES(780,'SND','wuerth.it','ivan.ianeselli','Accept',NULL); +INSERT INTO spamilter VALUES(781,'SND','xtra.co.nz','volcanic','Accept',NULL); +INSERT INTO spamilter VALUES(782,'SND','yahoo.cn','rapidideal','Accept',NULL); +INSERT INTO spamilter VALUES(783,'SND','yahoo.co.uk','xesterxlokir','Accept',NULL); +INSERT INTO spamilter VALUES(784,'SND','yahoo.com','french.sofia','Accept',NULL); +INSERT INTO spamilter VALUES(785,'SND','yahoo.com','facbf','Accept',NULL); +INSERT INTO spamilter VALUES(786,'SND','yahoo.com','fabio2602','Accept',NULL); +INSERT INTO spamilter VALUES(787,'SND','yahoo.com','doudou.sun','Accept',NULL); +INSERT INTO spamilter VALUES(788,'SND','yahoo.com','dominique.greensquare','Accept',NULL); +INSERT INTO spamilter VALUES(789,'SND','yahoo.com','dlacquaniti','Accept',NULL); +INSERT INTO spamilter VALUES(790,'SND','yahoo.com.hk','paulinening','Accept',NULL); +INSERT INTO spamilter VALUES(791,'SND','yahoo.de','hanna_siwecki','Accept',NULL); +INSERT INTO spamilter VALUES(792,'SND','yahoo.it','sylviadn','Accept',NULL); +INSERT INTO spamilter VALUES(793,'SND','yahoo.it','pricci3','Accept',NULL); +INSERT INTO spamilter VALUES(794,'SND','yahoo.it','giulia_minghi','Accept',NULL); +INSERT INTO spamilter VALUES(795,'SND','yahoo.it','emanuelabima','Accept',NULL); +INSERT INTO spamilter VALUES(796,'SND','yahoo.it','donat201264','Accept',NULL); +INSERT INTO spamilter VALUES(797,'SND','yahoo.it','comoglio71','Accept',NULL); +INSERT INTO spamilter VALUES(798,'SND','yahoo.it','cataldigroup','Accept',NULL); +INSERT INTO spamilter VALUES(799,'SND','yahoo.it','bruzzonefoti','Accept',NULL); +INSERT INTO spamilter VALUES(800,'SND','yandex.ru','igorchumichev','Accept',NULL); +INSERT INTO spamilter VALUES(801,'SND','yeon-studio.com','','Accept',NULL); +INSERT INTO spamilter VALUES(802,'SND','yourhostingaccount.com','','Accept',NULL); +INSERT INTO spamilter VALUES(803,'SND','zacposen.com','jessica','Accept',NULL); +INSERT INTO spamilter VALUES(804,'SND','zaidaffas.com','','Accept',NULL); +INSERT INTO spamilter VALUES(805,'SND','zartow.dk','','Accept',NULL); +INSERT INTO spamilter VALUES(806,'SND','brio.agency','','Accept',''); +INSERT INTO spamilter VALUES(807,'SND','owenscorp.com','','Accept',''); +INSERT INTO spamilter VALUES(808,'SND','yigal-azrouel.com','','Accept',''); +INSERT INTO spamilter VALUES(809,'SND','pegaso-csd.it','','Accept',''); +INSERT INTO spamilter VALUES(810,'SND','infomobility.it','','Accept',''); +INSERT INTO spamilter VALUES(811,'SND','pierco.it','','Accept',''); +INSERT INTO spamilter VALUES(812,'SND','flairfashions.com','','Accept',''); +INSERT INTO spamilter VALUES(813,'SND','adamlippers.com','','Accept',''); +INSERT INTO spamilter VALUES(814,'SND','norisolferrari.com','','Accept',''); +INSERT INTO spamilter VALUES(815,'SND','alice.it','gorimarcello','Accept',''); +INSERT INTO spamilter VALUES(816,'SND','studiobillimantovani.it','','Accept',''); +INSERT INTO spamilter VALUES(817,'SND','philossrl.it','','Accept',''); +INSERT INTO spamilter VALUES(818,'SND','uber.com','','Accept',''); +INSERT INTO spamilter VALUES(819,'SND','nina-ricci.fr','','Accept',''); +INSERT INTO spamilter VALUES(820,'SND','bpcontroll.it','','Accept',''); +INSERT INTO spamilter VALUES(821,'SND','dareone.com.cn','','Accept',''); +INSERT INTO spamilter VALUES(822,'SND','massimodutti.com','','Accept',''); +INSERT INTO spamilter VALUES(823,'SND','borgini.it','','Accept',''); +INSERT INTO spamilter VALUES(824,'SND','interfilsrl.it','','Accept',''); +INSERT INTO spamilter VALUES(825,'SND','givitex.com','','Accept',''); +INSERT INTO spamilter VALUES(826,'SND','premierevision.com','','Accept',''); +INSERT INTO spamilter VALUES(827,'SND','libero.it','mariovilloresi','Accept',''); +INSERT INTO spamilter VALUES(828,'SND','modain.it','','Accept',''); +INSERT INTO spamilter VALUES(829,'SND','xopero.com','','Accept',''); +INSERT INTO spamilter VALUES(830,'SND','mediambiente.it','','Accept',''); +INSERT INTO spamilter VALUES(831,'SND','birindelli.com','','Accept',''); +INSERT INTO spamilter VALUES(832,'SND','metaenergia.it','','Accept',''); +INSERT INTO spamilter VALUES(833,'SND','cerved.com','','Accept',''); +INSERT INTO spamilter VALUES(834,'SND','thewstudio.com','','Accept',''); +INSERT INTO spamilter VALUES(835,'SND','therow.com','','Accept',''); +INSERT INTO spamilter VALUES(836,'SND','jmendel.com','','Accept',''); +INSERT INTO spamilter VALUES(837,'SND','alice.it','alessandroruviglioni','Accept',''); +INSERT INTO spamilter VALUES(838,'SND','annasammarone.it',' ','Accept',''); +INSERT INTO spamilter VALUES(839,'SND','benepiu.com','','Accept',''); +INSERT INTO spamilter VALUES(840,'SND','victoriabeckham.com','','Accept',''); +INSERT INTO spamilter VALUES(841,'SND','kering.com','','Accept',''); +INSERT INTO spamilter VALUES(842,'SND','j-w-anderson.com','','Accept',''); +INSERT INTO spamilter VALUES(843,'SND','ingridmunt.com','','Accept',''); +INSERT INTO spamilter VALUES(844,'SND','pucci.com','','Accept',''); +INSERT INTO spamilter VALUES(845,'SND','annalisabaldinimilano.com','','Accept',''); +INSERT INTO spamilter VALUES(846,'SND','pacorabanne.fr','','Accept',''); +INSERT INTO spamilter VALUES(847,'SND','kering','','Accept',''); +INSERT INTO spamilter VALUES(848,'SND','soiltest.it','','Accept',''); +INSERT INTO spamilter VALUES(849,'SND','zegna.com','','Accept',''); +INSERT INTO spamilter VALUES(850,'SND','etro.com','','Accept',''); +INSERT INTO spamilter VALUES(851,'SND','moncler.com','','Accept',''); +INSERT INTO spamilter VALUES(852,'SND','officinaviaggi.it','','Accept',''); +INSERT INTO spamilter VALUES(853,'SND','hedmayner.com','','Accept',''); +INSERT INTO spamilter VALUES(854,'SND','icloud.com','raphaellagiraudy','Accept',''); +INSERT INTO spamilter VALUES(855,'SND','erwo-italia.com','','Accept',''); +INSERT INTO spamilter VALUES(856,'SND','fratellibacci.it','','Accept',''); +INSERT INTO spamilter VALUES(857,'SND','baroncelligiulia.it','','Accept',''); +INSERT INTO spamilter VALUES(858,'SND','aesseprojects.com','','Accept',''); +INSERT INTO spamilter VALUES(859,'SND','sinterama.com','','Accept',''); +INSERT INTO spamilter VALUES(860,'SND','fedex.com','','Accept',''); +INSERT INTO spamilter VALUES(861,'SND','extranet.pittimmagine.org','','Accept',''); +INSERT INTO spamilter VALUES(862,'SND','pittimmigine.org','','Accept',''); +INSERT INTO spamilter VALUES(863,'SND','pagastic.com','','Accept',''); +INSERT INTO spamilter VALUES(864,'SND','gfi.it','','Accept',''); +INSERT INTO spamilter VALUES(865,'SND','lanari.it','','Accept',''); +INSERT INTO spamilter VALUES(866,'SND','idea-spa.it','','Accept',''); +INSERT INTO spamilter VALUES(867,'SND','mmmarsrl.it','','Accept',''); +INSERT INTO spamilter VALUES(868,'SND','francovago.com','','Accept',''); +INSERT INTO spamilter VALUES(869,'SND','trenitalia.it','','Accept',''); +INSERT INTO spamilter VALUES(870,'SND','alice.it','mariacristinabertini','Accept',''); +INSERT INTO spamilter VALUES(871,'SND','dachser.com','','Accept',''); +INSERT INTO spamilter VALUES(872,'SND','sistemaformazionesrl.it','','Accept',''); +INSERT INTO spamilter VALUES(873,'SND','onwardluxurygroup.com','','Accept',''); +INSERT INTO spamilter VALUES(874,'SND','uk.bureauveritas.com','','Accept',''); +INSERT INTO spamilter VALUES(875,'SND','tiscali.it','erremari','Accept',''); +INSERT INTO spamilter VALUES(876,'SND','gruppovichi.com','','Accept',''); +INSERT INTO spamilter VALUES(877,'SND','qatarairways.com.qa','','Accept',''); +INSERT INTO spamilter VALUES(878,'SND','qq.com','','Reject',''); +INSERT INTO spamilter VALUES(879,'SND','nook-fashion.de','m.waldhelm','Accept',''); +INSERT INTO spamilter VALUES(880,'SND','dropbox.com','','Accept',''); +INSERT INTO spamilter VALUES(881,'SND','climagen.com','info','Accept',''); +INSERT INTO spamilter VALUES(882,'SND','climagen.com','','Accept',''); +INSERT INTO spamilter VALUES(883,'SND','nelliepartow.com','marriam','Accept',''); +INSERT INTO spamilter VALUES(884,'SND','suedwollegroup.it','','Accept',''); +INSERT INTO spamilter VALUES(885,'SND','twsonline.it','p.teckhaus','Accept',''); +INSERT INTO spamilter VALUES(886,'SND','pec.jackytex.it','','Accept',''); +INSERT INTO spamilter VALUES(887,'SND','google.com','','Accept',''); +INSERT INTO spamilter VALUES(888,'SND','.bounces.google.com','','Accept',''); +INSERT INTO spamilter VALUES(889,'SND','amatoambiente.it','','Accept',''); +INSERT INTO spamilter VALUES(890,'SND','studiobonfiglioli.it','','Accept',''); +INSERT INTO spamilter VALUES(891,'SND','agita.it','assistenzaclienti','Accept',''); +INSERT INTO spamilter VALUES(892,'SND','cho.it','','Accept',''); +INSERT INTO spamilter VALUES(893,'SND','alice.it','enzo.trillini','Accept',''); +INSERT INTO spamilter VALUES(894,'SND','pascalmillet.com','','Accept',''); +INSERT INTO spamilter VALUES(895,'SND','hettabretz.it','stella.tirrizzi','Accept',''); +INSERT INTO spamilter VALUES(896,'SND','db-abbigliamento.it','prodotto','Accept',''); +INSERT INTO spamilter VALUES(897,'SND','balenciaga.com','','Accept',''); +INSERT INTO spamilter VALUES(898,'SND','unisalute.it','','Accept',''); +INSERT INTO spamilter VALUES(899,'SND','processfactory.it','','Accept',''); +INSERT INTO spamilter VALUES(900,'SND','brioni.com','','Accept',''); +INSERT INTO spamilter VALUES(901,'SND','pec.uipservizi.it','','Accept',''); +INSERT INTO spamilter VALUES(902,'SND','outlook.com','','Accept',''); +INSERT INTO spamilter VALUES(903,'SND','microsoft.com','','Accept',''); +INSERT INTO spamilter VALUES(904,'SND','biancospino.ro','','Accept',''); +INSERT INTO spamilter VALUES(905,'SND','robertocavalli.com','','Accept',''); +INSERT INTO spamilter VALUES(906,'SND','credit-agricole.it','giancarlo.secciani','Accept',''); +INSERT INTO spamilter VALUES(907,'SND','sofralab.com','fcavini','Accept',''); +INSERT INTO spamilter VALUES(908,'SND','alitalia.com','','Accept',''); +INSERT INTO spamilter VALUES(909,'SND','eusebio.it','','Accept',''); +INSERT INTO spamilter VALUES(910,'SND','milanounica.it','','Accept',''); +INSERT INTO spamilter VALUES(911,'SND','milanounica-badge.it','','Accept',''); +INSERT INTO spamilter VALUES(912,'SND','enistationplus.com','','Accept',''); +INSERT INTO spamilter VALUES(913,'SND','hermitageshop.org',' ','Accept',''); +INSERT INTO spamilter VALUES(914,'SND','ideabiella.it','','Accept',''); +INSERT INTO spamilter VALUES(915,'SND','generali.it','','Accept',''); +INSERT INTO spamilter VALUES(916,'SND','generali.com','','Accept',''); +INSERT INTO spamilter VALUES(917,'SND','achillepinto.com','','Accept',''); +INSERT INTO spamilter VALUES(918,'SND','visualplex.it','emanuele.butti','Accept',''); +INSERT INTO spamilter VALUES(919,'SND','gmail.com','centrorammendolucia','Accept',''); +INSERT INTO spamilter VALUES(920,'SND','visualplex.it','','Accept',''); +INSERT INTO spamilter VALUES(921,'SND','istitutoinforma.it','clienti','Reject',''); +INSERT INTO spamilter VALUES(922,'SND','texpro.com','','Accept',''); +INSERT INTO spamilter VALUES(923,'SND','truffleenjoy.it ','','Accept',''); +INSERT INTO spamilter VALUES(924,'SND','email.it','killthefire','Accept',''); +INSERT INTO spamilter VALUES(925,'SND','confidence.it','','Accept',''); +INSERT INTO spamilter VALUES(926,'SND','roadmaptozero.com','','Accept',''); +INSERT INTO spamilter VALUES(927,'SND','codetex.com',' ','Accept',''); +INSERT INTO spamilter VALUES(928,'SND','conad.it','','Accept',''); +INSERT INTO spamilter VALUES(930,'SND','torcituraarcioni.com',' ','Accept',''); +INSERT INTO spamilter VALUES(931,'SND','cho.it','silviag','Accept',''); +INSERT INTO spamilter VALUES(932,'SND','effepierre.com','','Accept',''); +INSERT INTO spamilter VALUES(933,'SND','smartcomcloud.it','','Accept',''); +INSERT INTO spamilter VALUES(934,'SND','alpilaghi.it','','Accept',''); +INSERT INTO spamilter VALUES(935,'SND','dunhill.com','','Accept',''); +INSERT INTO spamilter VALUES(936,'SND','rinascimento.com','','Accept',''); +INSERT INTO spamilter VALUES(937,'SND','tomfordinternational.com','','Accept',''); +INSERT INTO spamilter VALUES(938,'SND','q8.it','','Accept',''); +INSERT INTO spamilter VALUES(939,'SND','movitex.it','','Accept',''); +INSERT INTO spamilter VALUES(940,'SND','alldosrl.it','','Accept',''); +INSERT INTO spamilter VALUES(941,'SND','interfiltp.it','','Accept',''); +INSERT INTO spamilter VALUES(942,'SND','studiodelvita.it','','Accept',''); +INSERT INTO spamilter VALUES(943,'SND','alice.it','marina','Accept',''); +INSERT INTO spamilter VALUES(944,'SND','vigilio.it','sasas2015','Accept',''); +INSERT INTO spamilter VALUES(945,'SND','tinaglicommercialisti.it','','Accept',''); +INSERT INTO spamilter VALUES(946,'SND','arezzonastri.it','','Accept',''); +INSERT INTO spamilter VALUES(947,'SND','cribis.com',' ','Accept',''); +INSERT INTO spamilter VALUES(948,'SND','joseph.fr','','Accept',''); +INSERT INTO spamilter VALUES(949,'SND','agentprovocateur.com','','Accept',''); +INSERT INTO spamilter VALUES(950,'SND','lorenaantoniazzi.it','','Accept',''); +INSERT INTO spamilter VALUES(951,'SND','hotmail.it','claudia81pho','Accept',''); +INSERT INTO spamilter VALUES(952,'SND','manifatturecesari.com','','Accept',''); +INSERT INTO spamilter VALUES(953,'SND','suntex.it','','Accept',''); +INSERT INTO spamilter VALUES(954,'SND','fabianafilippi.com','','Accept',''); +INSERT INTO spamilter VALUES(955,'SND','maryfashion.it','','Accept',''); +INSERT INTO spamilter VALUES(956,'SND','arcioni.it','','Accept',''); +INSERT INTO spamilter VALUES(957,'SND','tubettificiomazzoncini.it','','Accept',''); +INSERT INTO spamilter VALUES(958,'SND','banca.mps.it','','Accept',''); +INSERT INTO spamilter VALUES(959,'SND','matchesfashion.com','','Accept',''); +INSERT INTO spamilter VALUES(960,'SND','gls-italy.com','','Accept',''); +INSERT INTO spamilter VALUES(961,'SND','falc.biz','','Accept',''); +INSERT INTO spamilter VALUES(962,'SND','filmar.it','','Accept',''); +INSERT INTO spamilter VALUES(963,'SND','christiandior.com','','Accept',''); +INSERT INTO spamilter VALUES(964,'SND','fr.berluti.com','','Accept',''); +INSERT INTO spamilter VALUES(965,'SND','db-abbigliamento.it','','Accept',''); +INSERT INTO spamilter VALUES(966,'SND','promostyl.com','','Accept',''); +INSERT INTO spamilter VALUES(967,'SND','hettabretz.it','','Accept',''); +INSERT INTO spamilter VALUES(968,'SND','ritrattosport.it','','Accept',''); +INSERT INTO spamilter VALUES(969,'SND','luisaspagnoli.it','','Accept',''); +INSERT INTO spamilter VALUES(970,'SND','lardini.it','','Accept',''); +INSERT INTO spamilter VALUES(971,'SND','mantero.com','','Accept',''); +INSERT INTO spamilter VALUES(972,'SND','ongetta.eu','','Accept',''); +INSERT INTO spamilter VALUES(973,'SND','microsoftonline.com','msonlineserviceteam','Accept',''); +INSERT INTO spamilter VALUES(974,'SND','microsoftonline.com','','Accept',''); +INSERT INTO spamilter VALUES(975,'SND','albert-nobilis.com','reah','Accept',''); +INSERT INTO spamilter VALUES(976,'SND','enigaseluce.com','','Accept',''); +INSERT INTO spamilter VALUES(977,'SND','contifibre.com','','Accept',''); +INSERT INTO spamilter VALUES(978,'SND','timeless-elegance.ch','mariano','Accept',''); +INSERT INTO spamilter VALUES(979,'SND','maisonm.it','','Accept',''); +INSERT INTO spamilter VALUES(980,'SND','lepida.it','','Accept',''); +INSERT INTO spamilter VALUES(981,'SND','lepida.it','mario.rossi','Accept',''); +INSERT INTO spamilter VALUES(982,'SND','comune.bitetto.ba.it ','','Accept',''); +INSERT INTO spamilter VALUES(983,'SND','silcast.it','','Accept',''); +INSERT INTO spamilter VALUES(984,'SND','albert-nobilis.com','uran','Accept',''); +INSERT INTO spamilter VALUES(985,'SND','expandtheweb.com','','Reject',''); +INSERT INTO spamilter VALUES(986,'SND','filati-naturali.it','','Accept',''); +INSERT INTO spamilter VALUES(987,'SND','poste.it','','Accept',''); +INSERT INTO spamilter VALUES(988,'SND','staff.aruba.it','','Accept',''); +INSERT INTO spamilter VALUES(989,'SND','inditex.com','','Accept',''); +INSERT INTO spamilter VALUES(990,'SND','manpower.it','','Accept',''); +INSERT INTO spamilter VALUES(991,'SND','vetementsemail.com','','Accept',''); +INSERT INTO spamilter VALUES(992,'SND','maisonullens.com','','Accept',''); +INSERT INTO spamilter VALUES(993,'SND','jakobschlaepfer.com',' ','Accept',''); +INSERT INTO spamilter VALUES(994,'SND','le-srl.it','','Accept',''); +INSERT INTO spamilter VALUES(995,'SND','monitex.it','','Accept',''); +INSERT INTO spamilter VALUES(996,'SND','natan.be','','Accept',''); +INSERT INTO spamilter VALUES(997,'SND','celine.fr','','Accept',''); +INSERT INTO spamilter VALUES(998,'SND','intimatti.it','','Accept',''); +INSERT INTO spamilter VALUES(999,'SND','zimmermann.com','','Accept',''); +INSERT INTO spamilter VALUES(1000,'SND','loreal.com','','Accept',''); +INSERT INTO spamilter VALUES(1001,'SND','fr.ysl.com','','Accept',''); +INSERT INTO spamilter VALUES(1002,'SND','sefin.it','alphabet-mms','Accept',''); +INSERT INTO spamilter VALUES(1003,'SND','sefin.it','','Accept',''); +INSERT INTO spamilter VALUES(1004,'SND','ferrari.com','','Accept',''); +INSERT INTO spamilter VALUES(1005,'SND','publiacqua.it ','','Accept',''); +INSERT INTO spamilter VALUES(1006,'SND','pagopa.gov.it','','Accept',''); +INSERT INTO spamilter VALUES(1007,'SND','shangxia.com','','Accept',''); +INSERT INTO spamilter VALUES(1008,'SND','icea.bio','','Accept',''); +INSERT INTO spamilter VALUES(1009,'SND','olimpia.it','','Accept',''); +INSERT INTO spamilter VALUES(1010,'SND','roh.org.uk','','Accept',''); +INSERT INTO spamilter VALUES(1011,'SND','servizi-e-seta.com','','Accept',''); +INSERT INTO spamilter VALUES(1012,'SND','louisvuitton.com','','Accept',''); +INSERT INTO spamilter VALUES(1013,'SND','giorgioarmani.it','','Accept',''); +INSERT INTO spamilter VALUES(1014,'SND','saveriopalatella.it','','Accept',''); +INSERT INTO spamilter VALUES(1015,'SND','costacruises.com','','Accept',''); +INSERT INTO spamilter VALUES(1016,'SND','ufficiopelagalli.it','','Accept',''); +INSERT INTO spamilter VALUES(1017,'SND','ilfilodisilvana.it','','Accept',''); +INSERT INTO spamilter VALUES(1018,'SND','tintoriadipollone.it','','Accept',''); +INSERT INTO spamilter VALUES(1019,'SND','opernhaus.ch','','Accept',''); +INSERT INTO spamilter VALUES(1020,'SND','loropiana.com','','Accept',''); +INSERT INTO spamilter VALUES(1021,'SND','bureauveritas.com','','Accept',''); +INSERT INTO spamilter VALUES(1022,'SND','mementopiu.it','','Accept',''); +INSERT INTO spamilter VALUES(1023,'SND','2next.it','','Accept',''); +INSERT INTO spamilter VALUES(1024,'SND','cieffemilano.it','','Accept',''); +INSERT INTO spamilter VALUES(1025,'SND','kliolios.gr','','Accept',''); +INSERT INTO spamilter VALUES(1026,'SND','otb.net','ssc_treasury_notification','Accept',''); +INSERT INTO spamilter VALUES(1027,'SND','application.louisvuitton.com','','Accept',''); +INSERT INTO spamilter VALUES(1028,'SND','albert-nobilis.com','','Accept',''); +INSERT INTO spamilter VALUES(1029,'SND','emiroglio.com','','Accept',''); +INSERT INTO spamilter VALUES(1030,'SND','lanvin.com ','','Accept',''); +INSERT INTO spamilter VALUES(1031,'SND','cieffemilano.it','acquisti2','Accept',''); +INSERT INTO spamilter VALUES(1032,'SND','profiliagency.net ','','Accept',''); +INSERT INTO spamilter VALUES(1033,'SND','monvania.com','','Accept',''); +INSERT INTO spamilter VALUES(1034,'SND','reiss.com','','Accept',''); +INSERT INTO spamilter VALUES(1035,'SND','pigolottisrl.it','','Accept',''); +INSERT INTO spamilter VALUES(1036,'SND','crsportugal.com','','Accept',''); +INSERT INTO spamilter VALUES(1037,'SND','tessituradueg.it','','Accept',''); +INSERT INTO spamilter VALUES(1038,'SND','fastretailing.com','','Accept',''); +INSERT INTO spamilter VALUES(1039,'SND','samsung.com','f.viscardi','Accept',''); +INSERT INTO spamilter VALUES(1040,'SND','maisonluigiborbone.com','','Accept',''); +INSERT INTO spamilter VALUES(1041,'SND','sara.it','','Accept',''); +INSERT INTO spamilter VALUES(1042,'SND','vdalogistica.it','','Accept',''); +INSERT INTO spamilter VALUES(1043,'SND','stamperiacarini.it','','Accept',''); +INSERT INTO spamilter VALUES(1044,'SND','amazon.it','vggiachi','Accept',''); +INSERT INTO spamilter VALUES(1045,'SND','axelle.mg','elodie.webanck','Accept',''); +INSERT INTO spamilter VALUES(1046,'SND','axelle.mg','','Accept',''); +INSERT INTO spamilter VALUES(1047,'SND','trenitalia.com','','Accept',''); +INSERT INTO spamilter VALUES(1048,'SND','effe2spa.it','','Accept',''); +INSERT INTO spamilter VALUES(1049,'SND','amazon.it','','Accept',''); +INSERT INTO spamilter VALUES(1050,'SND','amazon.com','','Accept',''); +INSERT INTO spamilter VALUES(1051,'SND','amazon.eu','','Accept',''); +INSERT INTO spamilter VALUES(1052,'SND','fr.loewe.com','','Accept',''); +INSERT INTO spamilter VALUES(1053,'SND','loewe.com','','Accept',''); +INSERT INTO spamilter VALUES(1054,'SND','vodafonebusiness.net','','Accept',''); +INSERT INTO spamilter VALUES(1055,'SND','fashionmagazine.it','','Accept',''); +INSERT INTO spamilter VALUES(1056,'SND','rabanne.com','','Accept',''); +INSERT INTO spamilter VALUES(1057,'SND','net.vodafone.it','','Accept',''); +INSERT INTO spamilter VALUES(1058,'SND','bigbenitalia.com','','Accept',''); +INSERT INTO spamilter VALUES(1059,'SND','crif.com','','Accept',''); +INSERT INTO spamilter VALUES(1060,'SND','intertek.com','','Accept',''); +INSERT INTO spamilter VALUES(1061,'SND','eniplenitude.com','','Accept',''); +INSERT INTO spamilter VALUES(1062,'SND','qualitex.it','inviodoc','Accept',''); +INSERT INTO spamilter VALUES(1063,'SND','postepay.it','','Accept',''); +INSERT INTO spamilter VALUES(1064,'SND','douglas.it','','Accept',''); +INSERT INTO spamilter VALUES(1065,'SND','hotmail.it','igor.textrading','Accept',''); +INSERT INTO spamilter VALUES(1066,'SND','cloudmark.com','','Accept',''); +INSERT INTO spamilter VALUES(1067,'SND','giannitti.it','','Accept',''); +INSERT INTO spamilter VALUES(1068,'SND','italfil-lane.it','','Accept',''); +INSERT INTO spamilter VALUES(1069,'SND','csi.cloudmark.com','','Accept',''); +INSERT INTO spamilter VALUES(1070,'SND','studiomixcorboli.it','','Accept',''); +INSERT INTO spamilter VALUES(1071,'SND','techprintsrl.com','','Accept',''); +INSERT INTO spamilter VALUES(1072,'SND','textileexchange.org','','Accept',''); +INSERT INTO spamilter VALUES(1073,'SND','citiltex.it','','Accept',''); +INSERT INTO spamilter VALUES(1074,'SND','airsenegalse-sn.com','','Reject',''); +INSERT INTO spamilter VALUES(1075,'SND','tollegno1900.it','','Accept',''); +INSERT INTO spamilter VALUES(1076,'SND','uslcentro.toscana.it','dermatologiapalagi','Accept',''); +INSERT INTO spamilter VALUES(1077,'SND','outlook.it','samantha.vanni','Accept',''); +INSERT INTO spamilter VALUES(1078,'SND','sekologistics.com','','Accept',''); +INSERT INTO spamilter VALUES(1079,'SND','tuev-nord.it','','Accept',''); +INSERT INTO spamilter VALUES(1080,'SND','beauvaisinternational.com','','Accept',''); +INSERT INTO spamilter VALUES(1081,'SND','friendsandfamily.loreal.it','','Accept',''); +INSERT INTO spamilter VALUES(1082,'SND','hotmail.com','constancehuin','Accept',''); +INSERT INTO spamilter VALUES(1083,'SND','eprocurement.prada.com','','Accept',''); +INSERT INTO spamilter VALUES(1084,'SND','goessl.com','','Accept',''); +INSERT INTO spamilter VALUES(1085,'SND','giada.com','','Accept',''); +INSERT INTO spamilter VALUES(1086,'SND','supporto.it','nexi','Accept',''); +INSERT INTO spamilter VALUES(1087,'SND','ivalua.com','','Accept',''); +INSERT INTO spamilter VALUES(1088,'SND','fairlymade.com','','Accept',''); +INSERT INTO spamilter VALUES(1089,'SND','enervit.it','','Accept',''); +INSERT INTO spamilter VALUES(1090,'SND','mylectra.com','','Accept',''); +INSERT INTO spamilter VALUES(1091,'SND','mail.supplier.fairlymade.com','','Accept',''); +INSERT INTO spamilter VALUES(1092,'SND','filtrading.it','','Accept',''); +INSERT INTO spamilter VALUES(1093,'SND','live.com','leopoldo.corsi','Accept',''); +INSERT INTO spamilter VALUES(1094,'SND','mailersend.net','','Accept',''); +INSERT INTO spamilter VALUES(1095,'SND','mta.ideabiella.it','','Accept',''); diff --git a/tools/system2petar/mail.csv b/tools/system2petar/mail.csv new file mode 100644 index 0000000..87ca640 --- /dev/null +++ b/tools/system2petar/mail.csv @@ -0,0 +1,47 @@ +pierog|$1$0bk7/wiv$ctAHbtJKkkNJutrAoxLVj/|2000|pierogiachi@jackytex.it|/home/mailusers/pierog|/bin/sh|jackytex.it +claudiog|$1$V30Y/.hD$gDhNyE7Kq8GwKS447N1op1|2000|claudiogiachi@jackytex.it|/home/mailusers/claudiog|/bin/sh|jackytex.it +gabriellag|$1$509dL4x.$DKbhqSzMjvYhrfuuXSGII/|2000|gabrigiachi@jackytex.it|/home/mailusers/gabriellag|/bin/sh|jackytex.it +aldob|$1$c1p8oJbe$gLr3n8DkPunQek/a2S0rZ/|2000|bizzarri@jackytex.it|/home/mailusers/aldob|/bin/sh|jackytex.it +simoneb|$1$bwnZEGu6$CF9B1fDfFFtOyFzh/Mkab1|2000|simoneb@jackytex.it|/home/mailusers/simoneb|/sbin/nologin|jackytex.it +spedizioni|$1$8/B8cn3c$jKpOyg3sLybj5l7h6XGGN0|2000|spedizioni@jackytex.it|/home/mailusers/spedizioni|/bin/sh|jackytex.it +vilmadragone|$1$1BiyHeZT$roMFPSaKhe2itO4pU.zyO.|2000|vilmadragone@jackytex.it|/home/mailusers/vilmadragone|/bin/sh|jackytex.it +bencivenni|$1$lJ64jcjW$Mir5w80BI2OuiLkK0f0To1|2000|bencivenni@jackytex.it|/home/mailusers/bencivenni|/bin/sh|jackytex.it +lazzerini|$1$YVaGRk4z$DTjfQmGDQshQ8cB08rILv/|2000|lazzerini@jackytex.it|/home/mailusers/lazzerini|/bin/sh|jackytex.it +rmari|$1$X6LdcKL.$qgZ0gbsLZeqMT8DJ01dgh1|2000|r.mari@jackytex.it|/home/mailusers/rmari|/sbin/nologin|jackytex.it +ballantini|$1$BUW.Xoh7$czXn/QtcBbNKt554ZahRR.|2000|ballantini@jackytex.it|/home/mailusers/ballantini|/bin/sh|jackytex.it +cappelli|$1$rsJw7KvX$8e0uleTyvtdgrc7sBqdxB.|2000|cappelli@jackytex.it|/home/mailusers/cappelli|/bin/sh|jackytex.it +turini|$1$bkeeueTI$eMv0uBQsAVwLAw1n1uHeY0|2000|turini@jackytex.it|/home/mailusers/turini|/bin/sh|jackytex.it +controllo|$1$KqmayrK1$q5OExZOOmNdNj0sOkdNt4.|2000|controllo@jackytex.it|/home/mailusers/controllo|/sbin/nologin|jackytex.it +campionario|$1$DQttcdv1$Hl4PnDvExsNc2lQrhSadj/|2000|campionario@jackytex.it|/home/mailusers/campionario|/sbin/nologin|jackytex.it +magfil|$1$e.5A4OtP$4SaenPgOpcso5z73LizLM0|2000|magfil@jackytex.it|/home/mailusers/magfil|/sbin/nologin|jackytex.it +ciabattini|$1$61.8y5Dl$1Id/yt7JG1pryjqXQ9a5R.|2000|ciabattini@jackytex.it|/home/mailusers/ciabattini|/bin/sh|jackytex.it +armandobacci|$1$JjuPCGOq$sSSdisinGzWkXF8usQM.P/|2000|armandobacci@jackytex.it|/home/mailusers/armandobacci|/bin/sh|jackytex.it +spedfin|$1$GmYKMJaT$FJ.RB55KKj6XKB4v47pxf1|2000|spedfin@jackytex.it|/home/mailusers/spedfin|/sbin/nologin|jackytex.it +lucaricci|$1$PCSbMm7N$OdXCKJ13jqQXmQ0YE/3oP.|2000|lucaricci@jackytex.it|/home/mailusers/lucaricci|/bin/sh|jackytex.it +fierejac|$1$hSNRugAJ$sBavgSbot35ojUNHuaWVt/|2000|fierejac@jackytex.it|/home/mailusers/fierejac|/sbin/nologin|jackytex.it +parmini|$1$Vnnj3SsL$bzoHnDujKygA63EC2J/yz.|2000|parmini@jackytex.it|/home/mailusers/parmini|/bin/sh|jackytex.it +generica|$1$q.kTHEti$Tx/zFZhrYo7Yq1jMlHaOA.|2000|jackytex@jackytex.it|/home/mailusers/generica|/sbin/nologin|jackytex.it +konnyrubr|$1$2.30FqXw$tqMhY4iKl35QajcUrpzN3.|2000|rubrigi@jackytex.it|/home/mailusers/konnyrubr|/bin/sh|jackytex.it +felici|$1$BWxQx92o$Sl3OTmeqV1C0TYNjaW.92/|2000|felici@jackytex.it|/home/mailusers/felici|/bin/sh|jackytex.it +sacconi|$1$HzN6tbyX$w41OPFGdJPCyyg8hQ6MfD0|2000|sacconi@jackytex.it|/home/mailusers/sacconi|/bin/sh|jackytex.it +donatella|$1$5unR.wb8$pHDRd94HO/w.k93myXzxt/|2000|donatella@jackytex.it|/home/mailusers/donatella|/sbin/nologin|jackytex.it +rosseti|$1$UZFtrkQf$pKY6ua8aHwFd0R9hkc/hg0|2000|rosseti@jackytex.it|/home/mailusers/rosseti|/bin/sh|jackytex.it +piazzesi|$1$kyd.H/V2$bbFfrMO4IIH5369azSJSO/|2000|piazzesi@jackytex.it|/home/mailusers/piazzesi|/bin/sh|jackytex.it +biagiotti|$1$Ta8L8PR8$X9ZbQ4OmxM59dsjT6eifq.|2000|biagiotti@jackytex.it|/home/mailusers/biagiotti|/bin/sh|jackytex.it +simonegiachi|$1$xwhrqhuL$yNZCrKKTDDoNlVo9DzqJM1|2000|simonegiachi@jackytex.it|/home/mailusers/simonegiachi|/bin/sh|jackytex.it +pfibbi|$1$O3xMUbUQ$MXFzVuKcSB.2wP.mRZoZg0|2000|fibbi@jackytex.it|/home/mailusers/pfibbi|/bin/sh|jackytex.it +delbianco|$1$wPHM6pyV$RjQVMNT547jylYBxF1exh/|2000|delbianco@jackytex.it|/home/mailusers/delbianco|/bin/sh|jackytex.it +commerciale|$1$g/C1m6nM$pGxOTdSX6uV85zhwJ7y741|2000|commerciale@jackytex.it|/home/mailusers/commerciale|/bin/sh|jackytex.it +seqrite|$1$cihJlT42$pDXEINWzik1tT/Wj0Qw1T0|2000|seqrite@jackytex.it|/home/mailusers/seqrite|/sbin/nologin|jackytex.it +ups_ced|$1$GzDI7SKL$4iG/JlmZ3Sy4fXaX5BVon/|2000|ups_ced@jackytex.it|/home/mailusers/ups_ced|/sbin/nologin|jackytex.it +donatelli|$1$KOxmkM4h$3GKBLqTkC0hQHCsAMON3W.|2000|donatelli@jackytex.it|/home/mailusers/donatelli|/bin/sh|jackytex.it +sustainability|$1$4pUrM/tP$UYoVVRYtMIXd.ZmH0D9gb1|2000|sustainability@jackytex.it|/home/mailusers/sustainability|/bin/sh|jackytex.it +catalogo|$1$mMrFWe7/$R.qXij3yUn3unpqTbPGTr/|2000|catogo@jackytex.it|/home/mailusers/catalogo|/sbin/nologin|jackytex.it +piovosi|$1$i2CotKqZ$aIQBBYRb/CH1RRaXIVjt30|2000|piovosi@jackytex.it|/home/mailusers/piovosi|/bin/sh|jackytex.it +jcknews|$1$olA1VZAx$G/krLDnmL/JdqP.sNslGd1|2000|news@jackytex.it|/home/mailusers/jcknews|/sbin/nologin|jackytex.it +corsi|$1$3YyDx1q3$gTMI0dRDEryyX9/NjKzCd/|2000|corsi@jackytex.it|/home/mailusers/corsi|/bin/sh|jackytex.it +francesconi|$1$KgcGTpWW$A6BPf7FmKZRPr.gvCZS/v1|2000|francesconi@jackytex.it|/home/mailusers/francesconi|/bin/sh|jackytex.it +d-manzo|$1$W1s.eVlo$NwP88FaKnCKaT2sjEGowZ.|2000|manzo@jackytex.it|/home/mailusers/d-manzo|/bin/sh|jackytex.it +contabili|$1$be2BLWbJ$T4IqeYVkDOeoWvEKZYwlM/|2000|contabili@jackytex.it|/home/mailusers/contabili|/bin/sh|jackytex.it +dalessandrof|$1$BuXNe6ke$wniWi01zQn9Tl4gBXjkvT1|2000|dalessandro@jackytex.it|/home/mailusers/dalessandrof|/bin/sh|jackytex.it +taletefinito|$1$k6AgVWhO$DqErwqWYobYTrguUZyQMy1|2000|controllofinito@jackytex.it|/home/mailusers/taletefinito|/bin/sh|jackytex.it diff --git a/tools/system2petar/master.passwd b/tools/system2petar/master.passwd new file mode 100644 index 0000000..0536246 --- /dev/null +++ b/tools/system2petar/master.passwd @@ -0,0 +1,94 @@ +# $FreeBSD$ +# +root:$6$T0q75fJcHkvhQhKE$BqHIbNxZJzaNdvh/6vHf0N3qeosdbYcxt2nyFH1yN0sWXp67xjHEVPbTui.pbwREZiOGWv6Vm0nl/Uz/edvwW0:0:0::0:0:Charlie &:/root:/bin/tcsh +toor:*:0:0::0:0:Bourne-again Superuser:/root: +daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin +operator:*:2:5::0:0:System &:/:/usr/sbin/nologin +bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin +tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin +kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin +games:*:7:13::0:0:Games pseudo-user:/:/usr/sbin/nologin +news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin +man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin +sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologin +smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin +mailnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin +bind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologin +unbound:*:59:59::0:0:Unbound DNS Resolver:/var/unbound:/usr/sbin/nologin +proxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin +_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/usr/sbin/nologin +_dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologin +uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico +pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin +auditdistd:*:78:77::0:0:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin +www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin +ntpd:*:123:123::0:0:NTP Daemon:/var/db/ntp:/usr/sbin/nologin +_ypldap:*:160:160::0:0:YP LDAP unprivileged user:/var/empty:/usr/sbin/nologin +hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin +tests:*:977:977::0:0:Unprivileged user for tests:/nonexistent:/usr/sbin/nologin +nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin +clamav:*:106:106::0:0:Clamav Antivirus:/nonexistent:/usr/sbin/nologin +dovecot:*:143:143::0:0:Dovecot User:/var/empty:/usr/sbin/nologin +dovenull:*:144:144::0:0:Dovecot login User:/var/empty:/usr/sbin/nologin +cyrus:*:60:60::0:0:the cyrus mail server:/nonexistent:/usr/sbin/nologin +git_daemon:*:964:964::0:0:git daemon:/nonexistent:/usr/sbin/nologin +# +# admin users +# +admin:*:1000:20::0:0:root mail collector:/home/admin:/usr/sbin/nologin +gmarco:$6$0TfbWkbyQe/OvIbJ$FvQqRroqksIFrbgx8PVWuP0dO1Hg6RWQk9Ie7B5Dd/.oVYfrO3/86vo0lUFIUeV8ohDk39migmrt4p5ds9Ual.:1001:20::0:0:Gianmarco:/home/gmarco:/bin/tcsh +cho:$6$PVIElHpLVCdALm5l$KOtimcJzaEzONThH2BYMe.SpNj9m.ZrvKLgld19owExw7ai2uc.6Q2YMoCHw7XBhTZbLNS1Vs5Nf2tuhEmyon/:1002:20::0:0:Computer House:/home/cho:/bin/tcsh +mysql:*:88:88::0:0:MySQL Daemon:/var/db/mysql:/usr/sbin/nologin +spamd:*:58:58::0:0:SpamAssassin user:/var/spool/spamd:/usr/sbin/nologin +openvpn:*:301:301::0:0:OpenVPN pseudo-user:/nonexistent:/usr/sbin/nologin +# Inizio utenti non di sistema ################## +# +pierog:$1$0bk7/wiv$ctAHbtJKkkNJutrAoxLVj/:2000:2000::0:0:pierogiachi@jackytex.it:/home/mailusers/pierog:/bin/sh +claudiog:$1$V30Y/.hD$gDhNyE7Kq8GwKS447N1op1:2001:2000::0:0:claudiogiachi@jackytex.it:/home/mailusers/claudiog:/bin/sh +gabriellag:$1$509dL4x.$DKbhqSzMjvYhrfuuXSGII/:2002:2000::0:0:gabrigiachi@jackytex.it:/home/mailusers/gabriellag:/bin/sh +aldob:$1$c1p8oJbe$gLr3n8DkPunQek/a2S0rZ/:2006:2000::0:0:bizzarri@jackytex.it:/home/mailusers/aldob:/bin/sh +simoneb:$1$bwnZEGu6$CF9B1fDfFFtOyFzh/Mkab1:2009:2000::0:0:simoneb@jackytex.it:/home/mailusers/simoneb:/sbin/nologin +spedizioni:$1$8/B8cn3c$jKpOyg3sLybj5l7h6XGGN0:2011:2000::0:0:spedizioni@jackytex.it:/home/mailusers/spedizioni:/bin/sh +vilmadragone:$1$1BiyHeZT$roMFPSaKhe2itO4pU.zyO.:2012:2000::0:0:vilmadragone@jackytex.it:/home/mailusers/vilmadragone:/bin/sh +bencivenni:$1$lJ64jcjW$Mir5w80BI2OuiLkK0f0To1:2013:2000::0:0:bencivenni@jackytex.it:/home/mailusers/bencivenni:/bin/sh +lazzerini:$1$YVaGRk4z$DTjfQmGDQshQ8cB08rILv/:2014:2000::0:0:lazzerini@jackytex.it:/home/mailusers/lazzerini:/bin/sh +rmari:$1$X6LdcKL.$qgZ0gbsLZeqMT8DJ01dgh1:2015:2000::0:0:r.mari@jackytex.it:/home/mailusers/rmari:/sbin/nologin +ballantini:$1$BUW.Xoh7$czXn/QtcBbNKt554ZahRR.:2020:2000::0:0:ballantini@jackytex.it:/home/mailusers/ballantini:/bin/sh +cappelli:$1$rsJw7KvX$8e0uleTyvtdgrc7sBqdxB.:2023:2000::0:0:cappelli@jackytex.it:/home/mailusers/cappelli:/bin/sh +turini:$1$bkeeueTI$eMv0uBQsAVwLAw1n1uHeY0:2028:2000::0:0:turini@jackytex.it:/home/mailusers/turini:/bin/sh +controllo:$1$KqmayrK1$q5OExZOOmNdNj0sOkdNt4.:2029:2000::0:0:controllo@jackytex.it:/home/mailusers/controllo:/sbin/nologin +campionario:$1$DQttcdv1$Hl4PnDvExsNc2lQrhSadj/:2030:2000::0:0:campionario@jackytex.it:/home/mailusers/campionario:/sbin/nologin +magfil:$1$e.5A4OtP$4SaenPgOpcso5z73LizLM0:2031:2000::0:0:magfil@jackytex.it:/home/mailusers/magfil:/sbin/nologin +ciabattini:$1$61.8y5Dl$1Id/yt7JG1pryjqXQ9a5R.:2032:2000::0:0:ciabattini@jackytex.it:/home/mailusers/ciabattini:/bin/sh +armandobacci:$1$JjuPCGOq$sSSdisinGzWkXF8usQM.P/:2033:2000::0:0:armandobacci@jackytex.it:/home/mailusers/armandobacci:/bin/sh +spedfin:$1$GmYKMJaT$FJ.RB55KKj6XKB4v47pxf1:2035:2000::0:0:spedfin@jackytex.it:/home/mailusers/spedfin:/sbin/nologin +lucaricci:$1$PCSbMm7N$OdXCKJ13jqQXmQ0YE/3oP.:2038:2000::0:0:lucaricci@jackytex.it:/home/mailusers/lucaricci:/bin/sh +fierejac:$1$hSNRugAJ$sBavgSbot35ojUNHuaWVt/:2040:2000::0:0:fierejac@jackytex.it:/home/mailusers/fierejac:/sbin/nologin +parmini:$1$Vnnj3SsL$bzoHnDujKygA63EC2J/yz.:2044:2000::0:0:parmini@jackytex.it:/home/mailusers/parmini:/bin/sh +generica:$1$q.kTHEti$Tx/zFZhrYo7Yq1jMlHaOA.:2045:2000::0:0:jackytex@jackytex.it:/home/mailusers/generica:/sbin/nologin +konnyrubr:$1$2.30FqXw$tqMhY4iKl35QajcUrpzN3.:2048:2000::0:0:rubrigi@jackytex.it:/home/mailusers/konnyrubr:/bin/sh +felici:$1$BWxQx92o$Sl3OTmeqV1C0TYNjaW.92/:2049:2000::0:0:felici@jackytex.it:/home/mailusers/felici:/bin/sh +sacconi:$1$HzN6tbyX$w41OPFGdJPCyyg8hQ6MfD0:2052:2000::0:0:sacconi@jackytex.it:/home/mailusers/sacconi:/bin/sh +donatella:$1$5unR.wb8$pHDRd94HO/w.k93myXzxt/:2053:2000::0:0:donatella@jackytex.it:/home/mailusers/donatella:/sbin/nologin +rosseti:$1$UZFtrkQf$pKY6ua8aHwFd0R9hkc/hg0:2055:2000::0:0:rosseti@jackytex.it:/home/mailusers/rosseti:/bin/sh +piazzesi:$1$kyd.H/V2$bbFfrMO4IIH5369azSJSO/:2056:2000::0:0:piazzesi@jackytex.it:/home/mailusers/piazzesi:/bin/sh +biagiotti:$1$Ta8L8PR8$X9ZbQ4OmxM59dsjT6eifq.:2058:2000::0:0:biagiotti@jackytex.it:/home/mailusers/biagiotti:/bin/sh +simonegiachi:$1$xwhrqhuL$yNZCrKKTDDoNlVo9DzqJM1:2059:2000::0:0:simonegiachi@jackytex.it:/home/mailusers/simonegiachi:/bin/sh +pfibbi:$1$O3xMUbUQ$MXFzVuKcSB.2wP.mRZoZg0:2061:2000::0:0:fibbi@jackytex.it:/home/mailusers/pfibbi:/bin/sh +delbianco:$1$wPHM6pyV$RjQVMNT547jylYBxF1exh/:2062:2000::0:0:delbianco@jackytex.it:/home/mailusers/delbianco:/bin/sh +commerciale:$1$g/C1m6nM$pGxOTdSX6uV85zhwJ7y741:2063:2000::0:0:commerciale@jackytex.it:/home/mailusers/commerciale:/bin/sh +seqrite:$1$cihJlT42$pDXEINWzik1tT/Wj0Qw1T0:2064:2000::0:0:seqrite@jackytex.it:/home/mailusers/seqrite:/sbin/nologin +ups_ced:$1$GzDI7SKL$4iG/JlmZ3Sy4fXaX5BVon/:2066:2000::0:0:ups_ced@jackytex.it:/home/mailusers/ups_ced:/sbin/nologin +donatelli:$1$KOxmkM4h$3GKBLqTkC0hQHCsAMON3W.:2067:2000::0:0:donatelli@jackytex.it:/home/mailusers/donatelli:/bin/sh +sustainability:$1$4pUrM/tP$UYoVVRYtMIXd.ZmH0D9gb1:2068:2000::0:0:sustainability@jackytex.it:/home/mailusers/sustainability:/bin/sh +catalogo:$1$mMrFWe7/$R.qXij3yUn3unpqTbPGTr/:2069:2000::0:0:catogo@jackytex.it:/home/mailusers/catalogo:/sbin/nologin +piovosi:$1$i2CotKqZ$aIQBBYRb/CH1RRaXIVjt30:2070:2000::0:0:piovosi@jackytex.it:/home/mailusers/piovosi:/bin/sh +jcknews:$1$olA1VZAx$G/krLDnmL/JdqP.sNslGd1:2071:2000::0:0:news@jackytex.it:/home/mailusers/jcknews:/sbin/nologin +corsi:$1$3YyDx1q3$gTMI0dRDEryyX9/NjKzCd/:2072:2000::0:0:corsi@jackytex.it:/home/mailusers/corsi:/bin/sh +francesconi:$1$KgcGTpWW$A6BPf7FmKZRPr.gvCZS/v1:2073:2000::0:0:francesconi@jackytex.it:/home/mailusers/francesconi:/bin/sh +d-manzo:$1$W1s.eVlo$NwP88FaKnCKaT2sjEGowZ.:2074:2000::0:0:manzo@jackytex.it:/home/mailusers/d-manzo:/bin/sh +contabili:$1$be2BLWbJ$T4IqeYVkDOeoWvEKZYwlM/:2075:2000::0:0:contabili@jackytex.it:/home/mailusers/contabili:/bin/sh +dalessandrof:$1$BuXNe6ke$wniWi01zQn9Tl4gBXjkvT1:2076:2000::0:0:dalessandro@jackytex.it:/home/mailusers/dalessandrof:/bin/sh +taletefinito:$1$k6AgVWhO$DqErwqWYobYTrguUZyQMy1:2077:2000::0:0:controllofinito@jackytex.it:/home/mailusers/taletefinito:/bin/sh + +silviag:$6$0vQcyCvxrpihDoaR$YyJ.lckWLfDj/59N00vCCjnW2xzx8K3ZHtiyLBiVJAVpUqNrxSXp6iwLlMQo81UXTh5Hvju59W.xg72h2dqqz1:2078:0::0:0:Silvia CHO:/home/silviag:/bin/sh diff --git a/tools/system2petar/master.passwd-import.sh b/tools/system2petar/master.passwd-import.sh new file mode 100755 index 0000000..c6bd8e0 --- /dev/null +++ b/tools/system2petar/master.passwd-import.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +. /home/web/default/petar.company/cfg_apps/petar/petar.cfg + +if [ -z "$1" ]; +then + PASSWD="/etc/master.passwd" +else + PASSWD=$1 +fi + +/usr/local/bin/sqlite3 ${PETARDB} 'DROP TABLE IF EXISTS MAILUSER' +/usr/local/bin/sqlite3 ${PETARDB} 'CREATE TABLE MAILUSER (login varchar(20) primary key, pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50));' +cat ${PASSWD} | awk -F: '$3 > 2000 && $3 < 65000 { dom=$8; sub(/.*@/,"",dom); print "INSERT INTO MAILUSER VALUES (" "\047" $1 "\047" ",\047" $2 "\047" ",\047" $4 "\047" ",\047" $8 "\047" ",\047" $9 "\047" ",\047" $10 "\047" ",\047" dom "\047" ");"}' | /usr/local/bin/sqlite3 ${PETARDB} diff --git a/tools/system2petar/spamilter-db-import.sh b/tools/system2petar/spamilter-db-import.sh new file mode 100755 index 0000000..5c347fa --- /dev/null +++ b/tools/system2petar/spamilter-db-import.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +cat /var/db/spamilter/db.sndr | tr "|" ";" | tr -d "[:blank:]" | awk 'BEGIN {FS = ";"} + +{print "INSERT INTO SPAMILTER (type,field1,field2,field3) VALUES (\"SND\",\""substr($1,2)"\",\""$2"\",\""$3"\");" }' + +