Mailadressen aus Logdatei extrahieren

B

bluelupo

Hallo zusammen,

da noch ein ziemlicher Anfänger in der Perlprogrammmierung bin wende mich an euch um bei meinen Problem weiter zu kommen. Ich will das Logfile von postfix auswerten bezüglich aller ankommen Mails die an alle Mailadressen meiner Domain kommen.

Eine solche Zeile schaut z.B so aus:

Dec 3 10:09:23 p15139717 postfix/local[23377]: A3B16204063: to=<bluelupo@meinedomain.de>, relay=local, delay=1, status=sent (mailbox)

Ich extrahiere mir den Namen vor den @-Zeichen herraus und summiere die eingenden Emails (pro Mailaccount) auf.


#!/usr/bin/perl -w
#
$LogDatei="./mail";
%mailadressen=();

# LogDatei oeffnen
open(INFILE, $LogDatei) or die "Datei $LogDatei nicht vorhanden !\n\n";

while (<INFILE>) {
if (/.* postfix\/local\[\d+\]: ([\w|\d]{1,11}): to=<(.*)@(.*)>.*/) {
$mailadressen{$2}++;
}
}

for (sort(keys %mailadressen)) {
print "$mailadressen{$_}\n";
}


Die Ausgabe schaut dann so aus:
# ./mailstats.pl
1
1
305
8

d.h. das vier verschiedene Mailadressen gefunden mit der Anzahl X eingegangener Mails. Ich hätte jetzt aber noch gerne die Mailadressen noch vor den jeweiligen Werten stehen. So etwa.

bluelupo: 1
root: 1
postmaster: 305
mailinglist: 8

Irgendwie schaffe ich es nicht noch die Mailadressen an die jeweilige Ausgabezeile auszugeben. Die if-Abfrage liefert das korrekte Ergebnis. Ich denke an dem Array (%mailadressen) liegts wohl. Grrrrr !

Das tuts leider auch nicht (angefügt ans Ende des Perlscriptes).


@allMailUsers=(sort(keys %mailadressen));
@allMails=(sort(values %mailadressen));
print "@allMailUsers --- @allMails\n";


Ausgabe:
bluelupo root postmaster mailinglist --- 1 1 305 8

Hat jemand einen Tip ?
 
Code:
 print "$_:$mailadressen{$_}\n";

so müsste das gehen. ;)
 
Steve schrieb:
Code:
 print "$_:$mailadressen{$_}\n";

so müsste das gehen. ;)

Hi Steve,

....Danke das ist genau die Ausgabe die ich gebraucht habe. Manchmal sieht den Wald vor lauter Bäumen nicht mehr.
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

Shellskript - Fehler in Cron

E-Mail Empfang, Aliases unter Debian Squeeze

NagiosGrapher 1.7.1 funktioniert nicht

Postfix, Dovecot Mail-Directory Problem

Zurück
Oben