• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Counter für emails

mmp5

Member
Ich müsste die Anzahl an Emails, die ein Freundesbund (WG) von mir, am Tag bekommt, wissen.
Meine Freunde haben einen eigenen Mailserver und sie bekommen über 200 Mails am Tag, ich soll ein Script schreiben, welches die Anzahl der Mails zählt.

Wie kann ich dies realisieren? ich habe keina Ahnung

Kann ich sowas wie ein Türsteher vor den Port 25 setzten? und alle verbindungen Zählen lassen, jedoch sind nicht alle verbindungen gleichzeitig Mails!
 

nbkr

Guru
Du könntest einfach die Logfiles auswerten. Postfix z.B. schreibt einen Eintrag für jede Mail die angekommen ist (oder versendet wurde). Auch Procmail (sofern verwendet) kann Loginfos speichern. Die ganz eklige Variante wäre eine Kopie jeder Mail durch ein Programm zu jagen das einfach einen Counter hochzählt. Auch hier wäre procmail wieder prima dafür geeignet.
 
OP
M

mmp5

Member
neeee du auf den Procmail steh ich net so, ich hab erfolgreich den Postfix laufen.
Aber zum Problem:
Ich weiß nicht wie es bei Procmal ausschaut, aber bei Postfix macht er mir da mehrere einträge und ich wüsste auch nicht wirklich, welchen ich nehmen soll.
Gibt es da ein Eindeutiges Zeichen? Ich finde keins.

Es soll später auch gesehen werden, wieviel Mails als Spam und wieviel als Ham durchgekommen sind.
Am einfachsten Fände ich soetwas wie einen "Türsteher" am ausgehenden smtp Port (alle Mails werden weitergeleitet), der alle "Gäste" durchzählt. Also jedesmal bei "Verbindung smtp 25" variable-x ++ .

Es soll nur einmal gezählt werden, damit ich ungefähr weiß wieviele es sind. Also da würde auch der ansatz mit der Kopie zur not helfen, aber wie mach ich das mit postfix ?
 

nbkr

Guru
Procmail ist so ein Türsteher (zumindest für eingehende Mails). Im Übrigen brauchst Du auf Postfix nicht zu verzichten wenn Du Procmail einsetzt. Procmail ist kein MTA sondern nur ein Maildropper.
 
OP
M

mmp5

Member
ahhh Sry hab das irgendwie verwechselt.
Naja ... also als ich meine Freunde fragte ob es mal in Ordnung sei ein Progrämmchen zu installieren, sagten sie mir ... nee bitte keine Veränderungen, alles so belassen wie es ist und nur Zählen.
:( na toll, jetzt kann ich mir ausdenken, wie ich an diese Mailanzahl rankomme.
Ok Fortsetzung Lösungsantz Log file (Debian, Postfix, Amavis, SA):
Ok ich habe da schon eine idee:
Bei jeder Mail passiert folgendes:
Code:
Apr 10 12:52:54 antispam postfix/smtpd[11883]: connect from unknown[82.43.4.0]
Apr 10 12:52:54 antispam postfix/smtpd[11883]: BA08357B79: client=unknown[82.43.4.0]
Apr 10 12:55:15 antispam postfix/smtpd[11894]: connect from localhost.localdomain[127.0.0.1]
Apr 10 12:55:16 antispam postfix/smtpd[11894]: 0329957B7A: client=localhost.localdomain[127.0.0.1]

So wenn ich jetzt gut Programmieren könnte :lol: würde ich die log file einlesen, und dann den Counter ++:
if "connect from" gefunden
Counter varx ++
...
...
//varx durch 2 teilen, da "connect from" immer 2 mal in einer Mailsession auftaucht
varx div 2

Ansatzweise richtig? Oder doch total Hirnrissig?
Thx für deine, eure Hilfe
 

TeXpert

Guru
naja, soviel Programmieren ist das ja gar nicth ;)

Code:
$ echo "$(grep -i 'connect from' $LOGFILE  | wc -l) / 2 " | bc -l
 
Oben