[FLUG] umts geccnuke mailer 0.1

  • From: Carlo Minucci <gecco@xxxxxxxxxxxx>
  • To: fanolug@xxxxxxxxxxxxx
  • Date: Sat, 03 Apr 2004 19:50:28 +0200

Mailing List del Fortunae LUG
=============================

per ovviare alla mail addiction che mi prendera` la prossima settimana (settimana in cui andro` in sicilia), non potendomi portare dietro il portatile, ne tanto meno avendo la sicurezza di una connessione a internet, ho risistemato il mio vecchio pop3umts.pl (all`url //www.freelists.org/archives/fanolug/12-2003/msg00222.html)
ci sono importanti features, ora si possono cancellare le mail, e pure spedirle
e` divisio in due file che devono andare dentro la dir cgi-bin del server web
dopodiche` accedete alla pagina tramite il vostro cellulare umts, credo che vada bene pure il gprs, quelli col wap non so
l`html e` striminzito al massino (quasi) per risparmiare in byte, in quanto la trariffazione di 3 va in base a quanti byte si scaricano


eccone i sorgenti

leggi.pl
#################################

#!/usr/bin/perl
print "Content-Type: text/html\n\n";

use Net::POP3;
$pop=Net::POP3->new('TUOSERVERPOP#');
$pop->login('TUOLOGIN', 'TUAPASSWORD');
my $msgnums = $pop->list;

@campi=$ENV{'QUERY_STRING'};
$dasplittare=@campi[0];
@splittato=split(/=/, $dasplittare);
$action=@splittato[0];
$messaggio=@splittato[1];
if(!$action)
{
$i=0;
foreach my $msgnum (keys %$msgnums)
{
$i=$i+1;
}
if($i eq 0)
{
print "non ci sono messaggi";
}
elsif($i>0)
{
$j=1;
while($j<=$i)
{
$msg=$pop->get($j);
$elementi=@$msg;
$incremento=0;
print "<a href=\"leggi.pl?del=$j\">cancella $j</a>";
print "|<a href=\"leggi.pl?read=$j\">";
while($incremento<=$elementi)
{
$robba=@$msg[$incremento];
chomp($robba);
if ($robba =~ /^From/)
{
$robba =~ s/.+<//;
@array=split(/@/, $robba);
$robba=@array[0];
print $robba;
}
if ($robba =~ /^Subject/)
{
$robba =~ s/^Subject: //;
print " - $robba</a><br>";
}
$incremento++;
}
$j++;
}
}
}
elsif($action eq 'read')
{
$msg=$pop->get($messaggio);
$elementi=@$msg;
$incremento=0;
while($incremento<=$elementi)
{
$robba=@$msg[$incremento];
#@array=split(/\r\n{2}/, $robba);
@array=split(/(\n\n)/, $robba);
$robba=@array[0];
$robba=~ s/\n/<br>/;
print $robba;
$incremento++;
}
}
elsif($action eq 'del')
{
print "cancellato";
$msg=$pop->delete($messaggio);
}
print "<br />[<a href=\"/cgi-bin/leggi.pl\">leggi</a>][<a href=\"/cgi-bin/scrivi.pl\">scrivi</a>]";
$pop->quit();


##############################

scrivi.pl

##############################

#!/usr/bin/perl
print "Content-Type: text/html\n\n";

use Net::SMTP;
$smtp=Net::SMTP->new('TUOSERVERSMTP', Timeout =>100);

@campi=$ENV{'QUERY_STRING'};
$dasplittare=@campi[0];
@splittato=split(/\&/, $dasplittare);
$mail=@splittato[0];
$mail=~s/.*=//;
$mail=~s/%40/\@/;
$messaggio=@splittato[1];
$messaggio=~s/.*=//;
$messaggio=~s/\+/ /g;
chop($messaggio);
$io="TUOUSER";

if(!$mail)
{
print "<form action=\"/cgi-bin/scrivi.pl\" method=\"get\">";
print "<input type=\"text\" name=\"mail\">adr<br>";
print "<input type=\"text\" name=\"messaggio\">msg<br>";
print "<input type=\"submit\" value=\"send\"></form>";
}
elsif($mail)
{
print "inviato";
$smtp->mail("$io");
$smtp->to("$mail");
$smtp->data();
$smtp->datasend("To: $mail\n");
$smtp->datasend("From: TUOINDIRIZZOMAIL\n");
$smtp->datasend("User-Agent: geccnuke mailer 0.1\n");
$smtp->datasend("Subject: UN_SOGGETTO_PREDEFINITO\n");
$smtp->datasend("\n");
$smtp->datasend("$messaggio\n");
$smtp->dataend();
$smtp->quit;
print "<br>[<a href=\"/cgi-bin/leggi.pl\">m</a>][<a href=\"/cgi-bin/scrivi.pl\">s</a>]";
}


##########################

ovviamente i nomi dei file li ho cambiati, dato che lo script non richiede nessuna password
la prossima versione, spero, rimuovera` gli header di ogni mail (che ancora, a forza di espressioni regolari, non ho capito come si fa)
chiarimenti e miglioramenti ovviamente sono graditi


bau

um


--
/"\ Fanolug supports:
\ / X ASCII Ribbon Campaign
/ \ against HTML email & vCards



Other related posts:

  • » [FLUG] umts geccnuke mailer 0.1