Newsgroup: it.comp.os.linux.software
Titolo: [slrn] una macro per segnalare lo spam

Ho scritto questa semplice macro per automatizzare l'invio delle
segnalazioni ai vari abuse. 
Basta premere [%] sul messaggio incriminato. Quest'ultimo verra` 
inviato all'indirizzo presente nell' header "X-Complaints-To".
#v+
define segnala_spam ()
{
variable indirizzo,
         cmd;
% assegna alla variabile {indirizzo} il valore dell'header
% "X-Complaints-To"
indirizzo=extract_article_header("X-Complaints-To");
% salva l'articolo che contiene spam in un file temporaneo
set_input_string ("/tmp/spam.txt");
call ("save");
% invia un'e-mail con titolo "SPAM". Il destinatario e` 
% indicato in {indirizzo}
cmd = sprintf ("%s%s", "cat /tmp/spam.txt | mutt -s SPAM ", \
indirizzo, 2);
() = system (sprintf ("%s", cmd));
% stampa un messaggio dell'avvenuto invio della mail
message (sprintf ("Segnalato invio di spam al seguente indirizzo: %s", \
indirizzo));
% rimuovi il file temporaneo in quanto la funzione "save" esegue
% l'append
() = system (sprintf ("%s", "rm -rf /tmp/spam.txt", 1));
}
definekey ("segnala_spam", "%", "article");
#v-
Sembra che funzioni ma sono convinto che si possa migliorare. 
Gradite idee e suggerimenti ! :))  
Grazie.
Ad esempio, penso sia possibile eliminare il file temporaneo.
variable articolo=article_as_string ();
mette nella variabile {articolo} tutto il contenuto dell'articolo.
Non so come dire al comando {mail|mutt} quale sia il corpo dell'e-mail
senza usarli in pipe con il comando cat.
Ciao
Ale
-- 
Home Page: 
http://web.tiscalinet.it/airaghi
Per ottenere il mio indirizzo e-mail sostituire a NOSPAM il mio cognome

, relay=
smtp.tiscalinet.it
[195.130.224.22], delay=2244, 
status=sent (250 Mail accepted)
------------------------------------------------------------------------
Sara` l'ora, il caldo, che ci capisco ancora poco di programmi :)
Non mi ricordavo nemmeno di aver inviato nulla al di fuori dell'utente
alex, per le prove.
Boh.


In data 28 Aug 2000 00:33:53 GMT, Alessandro Airaghi scriveva:
[cut]
Sembra andare un po' meglio con questa macro. Ultimo invio, poi non vi
stresso + :)
#v+
define segnala_spam ()
{
variable indirizzo="";
variable articolo=article_as_string ();
variable cmd, fp;
% assegna alla variabile {indirizzo} il valore dell'header
% X-Complaints-To
indirizzo=extract_article_header("X-Complaints-To");
% esci se non esiste l'header X-Complaints-To
if (indirizzo == "") 
{ 
 message (sprintf ("%s", "Non esiste l'header X-Complaints-To"));
 return;
}
% apri il file /tmp/spam.txt per la scrittura
fp = fopen ("/tmp/spam.txt", "w");
% scrivi nel file /tmp/spam.txt :
% [CR], un separatore costituito da 72 [-], [CR], il corpo dell'articolo
fputs ("\n-------------------------------------------------------------\
-----------\n", fp);
fputs (articolo, fp);
% chiudi il file /tmp/spam.txt
() = fclose (fp);
% invia un'e-mail con titolo "SPAM". Il destinatario e` indicato 
% in {indirizzo}
cmd = sprintf ("%s%s", "cat /tmp/spam.txt | mutt -s SPAM ", indirizzo, 2);
() = system (sprintf ("%s", cmd));
% stampa in SLRN un messaggio dell'avvenuto invio della mail
message (sprintf ("Segnalato invio di spam al seguente indirizzo: %s", \
indirizzo));
% rimuovi il file temporaneo /tmp/spam.txt
() = system (sprintf ("%s", "rm -rf /tmp/spam.txt", 1));
}
definekey ("segnala_spam", "%", "article");
#v-
Ciao


inviato all'indirizzo presente nell' header "X-Complaints-To".
Ottimo!
Se invece qualcuno preferisce una schifezza in perl faccia un fischio che la
posto.
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Adding features does not necessarily increase functionality -- it just
		makes the manuals thicker. !>-

posto.
Perche` schifezza?


Perche` schifezza?
Perché ci ho messi 5 minuti a scrivere/debuggare/testare il tutto e tenendo
conto del fatto che non sono certo un guru del Perl deve essere veramente un
PESSIMO esempio di programmazione. Anche se in un certo qual modo funziona.
Anzi, ora lo posto e ghignate un poco
--------------------------------------------------------------------------
#! /usr/bin/perl -w
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
require Mail::Send;
use Mail::Header;
use Time::localtime;
my ($complainer) = "cowo\@
lugbs.linux.it
";
my ($now_string) = (
  (localtime->hour()).":".(localtime->min()).":".(localtime->sec())."
  on ".(localtime->mday())."/".(localtime->mon())."/".(localtime->year()+1900).
  " (d/m/y)\n"
);
my ($spam_msg) = "";
my ($news_admin) = "";
my ($complaint_msg) = "$now_string\nHi!\n \tMy name is
  Giuseppe Corbelli. This usenet post is PURE SPAM and has been written\n \tby
  one of your customers. Inclu
  ded are complete headers.\n Best Regards\n\tGiuseppe Corbelli -
  $complainer\n";
while ( $line = <STDIN> )       {
  $spam_msg .= $line;
  if ($line =~ /X-Complaints-To.*/)       {
  @tmp = split (' ', $line);
  $news_admin = pop (@tmp);
  undef @tmp;
  }
}
if (!$news_admin) {die};
$admin_msg = new Mail::Send;
$admin_msg->to($news_admin);
$admin_msg->subject('Spam complaint');          
$admin_fh = $admin_msg->open;
print $admin_fh ($complaint_msg);
print $admin_fh ($spam_msg);
$admin_fh->close;
------------------------------------------------------------------------------
L'indentazione é quella che é :-))
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Any sufficiently advanced bug is indistinguishable from a feature. !>-
                 Rich Kulawiec

 my ($complainer) = "cowo\@
lugbs.linux.it
";
Ah, ecco perche' mi sembrava familiare il tuo nome/nick, partecipi alla
ML del lugbs :-)
-- 
Fabio   fabio161616(at)
libero.it
 blackmagic(at)
penguinpowered.com
 
Computers are not intelligent.  They only think they are.

ML del lugbs :-)
Ahaha! Un compatriota! E invece tu chi sei che non ho capito? :-))
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.16
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**


 Ahaha! Un compatriota! E invece tu chi sei che non ho capito? :-))
Non ho mai postato li', lurko soltanto :-)
-- 
Fabio   fabio161616(at)
libero.it
 blackmagic(at)
penguinpowered.com
 
UNIX is a trademark of AT&T ...
   AT&T is a modem test command .... :-)