[linux-l] Shell-Script
Robert C. Helling
r.helling at iu-bremen.de
Do Mär 13 12:40:02 CET 2008
On Thu, 13 Mar 2008, Leander Sukov wrote:
> Hallo,
>
> ich bräuchte jemanden der ausgesprochen fit in Shell-Scripten ist - wobei es
> auch sein kann, dass das, was ich brauche nur per Perl geht:
>
> Es soll aus einer Verzeichnisstruktur
>
> /var/kunden/mails
> ................../kunde/
> ...................../email at domain/
> ......................../cur/ /new/ /tmp/ /Spam/
>
> Ausgelesen werden, wieviele Mails im im Ordner Spam liegen und möglichst auch
> Absender und Betreff und dann eine Mail an die E-Mail-Adresse geschickt
> werden die in der Ordnerbezeichnung /email at domain/ steht.
>
> Das Script soll durch die gesamte Verzeichnisstruktur von /var/kunden/mails/
> gehen, bis alle /email at domain/-Ordner erfasst und abgearbeitet sind.
>
> Kann das jemand? Falls ja, könnte er mich bitte per PM anschreiben. Kostenlos
> soll das ja nun nicht gerade sein (reich werden kann man aber auch nicht)
Etwa so:
O / \ O
------- X ----cut here---- X --------
O \ / O
#!/usr/bin/perl
# SpamZaehler und Erinnerer
# Von Robert Helling (helling at atdotde.de)
# Published under the GNU Public License (GPL)
use File::Find;
use Mail::Sendmail;
use strict;
my $start_dir = '/var/kunden/mails';
my $folder_name = 'Spam';
my $sender = 'Leander Sukov <leander.sukov at leander-sukov.de>';
find(\&zaehlen,$start_dir);
sub zaehlen{
my $spams;
next unless $_ eq $folder_name;
$File::Find::dir =~ /\/([^\/]+\@[^\/]+)\//;
my $name = $1;
my $spams = 0;
open(IN, $folder_name) || die "$0:Cannot open $File::Find::name : $!";
while(<IN>){
$spams++ if /^From /;
}
close IN;
if($name){
my %mail = ( To => $name,
From => $sender,
Message => "You have $spams messgages in $File::Find::name!\n"
);
sendmail(%mail) or die $Mail::Sendmail::error;
}
}
O / \ O
------- X ----cut here---- X --------
O \ / O
Ich konnte das Mailversenden nicht ausprobieren, da ich hier keinen
MTA laufen habe und auch meine Verzeichnisse anders aussehen. Ich nehme
an, dass Spam dann eine mailfolder Datei ist, in der man nur die From am
Zeilenanfang zaehlen muss. Sonst nehme man da ein passenderes Modul von
http://search.cpan.org/modlist/Mail_and_Usenet_News/Mail
Viele Gruesse
Robert
--
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling Elite Master Course Theoretical and Mathematical Physics
Scientific Coordinator
Ludwig Maximilians Universitaet Muenchen, Dept. Physik
print "Just another Phone: +49 89 2180-4523 Theresienstr. 37, rm. 440
stupid .sig\n"; http://www.atdotde.de
Mehr Informationen über die Mailingliste linux-l