HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Developers' Forum (http://www.howtoforge.com/forums/forumdisplay.php?f=18)
-   -   Bug in mail_logs.php (http://www.howtoforge.com/forums/showthread.php?t=29027)

ivoks 27th November 2008 21:13

Bug in mail_logs.php
 
Hi!

I've noticed a bug in mail_logs.php which generates mail traffic stats. Line in my mail.log:

Nov 15 14:19:04 xxxx postfix/smtpd[27493]: NOQUEUE: reject: RCPT from
xxxxxxxxxxxxxx[xxxxxxxxxxx]: 450 4.1.8
<prvs=1203725193=xxxxxxx@xxxxxxx>: Sender address rejected:
Domain not found; from=<prvs=1203725193=xxxxxxxxx@xxxxxxxxx>
to=<xxxx@xxxx> proto=ESMTP helo=<xxxxxxxxxxx>

resulted in '1203725193' being counted as a mail traffic. This was caused by a line in '/root/ispconfig/scripts/shell/mail_logs.php':

exec("grep -iw ".$mod->system->server_conf["server_mta"]." $dist_mail_log.$datum | grep -iw from | grep -iw $domain | grep -iw $monat_kurz | cut -f2 -d, | cut -f2 -d= > $dist_mail_log.$vhost");

This is wrong. You guys should really use awk or something. I found that:

exec("grep -iw ".$mod->system->server_conf["server_mta"]." $dist_mail_log.$datum | grep -iw from | grep -iw $domain | grep -iw $monat_kurz | grep size= | awk -F', size=' '{print $2}' | cut -d\, -f1 > $dist_mail_log.$vhost");

works much better in my setup (postfix).

Take care.

falko 28th November 2008 13:53

I've added this to our bugtracker.

jmroth 26th January 2010 22:02

fix in r1109 FS#333
 
I see there is a potential fix for the mail size logging.
However
1) when awk is not available, the old (potentially flawed) code is used.
2) additionally, when there is more logging to the mail.log like
Code:

Jan 26 18:19:24 mark5 postfix-policyd: rcpt=10111, throttle=clear(a), host=iii.iii.iii.iii, from=xxx, to=yyy, size=0/999999999, quota=0/100000000, count=1/512(450), rcpt=1/3600(1757), threshold=0%|0%|0%
additional matches that should not happen do happen.

In the postfix case one should only consider lines with 'postfix/qmgr'.
In the sendmail case I wouldn't know what to do, since I don't use sendmail...

If the problem is that one does not know whether grep/awk etc. exists (with the desired features) on potentially ancient systems like Debian 3.0 etc. one should maybe include the required tools with the installation package.


All times are GMT +2. The time now is 17:57.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.