more mail statistics
Posted: 26 Mar 2015 10:39
Firstly, I was looking for some more mail statistics, specifically the # of rejected connections. I found this script which makes a nice summary:
http://adminlogs.info/2012/07/22/how-to ... mail-logs/
secondly, I wanted to break out the high/low spam statistics in the mailscanner total "messages by date" report. I made the following trivial changes to /var/www/html/mailscanner/rep_total_mail_by_date.php
Just remember that this is a change to the mailscanner which would be overwritten on an update.
http://adminlogs.info/2012/07/22/how-to ... mail-logs/
secondly, I wanted to break out the high/low spam statistics in the mailscanner total "messages by date" report. I made the following trivial changes to /var/www/html/mailscanner/rep_total_mail_by_date.php
Code: Select all
[root@efa mailscanner]# diff -c rep_total_mail_by_date.php.org rep_total_mail_by_date.php
*** rep_total_mail_by_date.php.org 2015-03-26 14:09:05.616871021 +0800
--- rep_total_mail_by_date.php 2015-03-26 18:29:12.917982124 +0800
***************
*** 44,49 ****
--- 44,50 ----
COUNT(*) AS total_mail,
SUM(CASE WHEN virusinfected>0 THEN 1 ELSE 0 END) AS total_virus,
SUM(CASE WHEN (virusinfected=0 OR virusinfected IS NULL) AND isspam>0 THEN 1 ELSE 0 END) AS total_spam,
+ SUM(CASE WHEN (virusinfected=0 OR virusinfected IS NULL) AND ishighspam>0 THEN 1 ELSE 0 END) AS total_highspam,
SUM(CASE WHEN (virusinfected=0 OR virusinfected IS NULL) AND (isspam=0 OR isspam IS NULL) AND ismcp>0 THEN 1 ELSE 0 END) AS total_mcp,
SUM(size) AS total_size
FROM
***************
*** 100,105 ****
--- 101,108 ----
$data_total_mail[] = $row->total_mail;
$data_total_virii[] = $row->total_virus;
$data_total_spam[] = $row->total_spam;
+ $data_total_highspam[] = $row->total_highspam;
+ $data_total_lospam[] = $row->total_spam - $row->total_highspam;
$data_total_mcp[] = $row->total_mcp;
$data_total_size[] = $row->total_size;
}
***************
*** 160,171 ****
$bar2 = new BarPlot($data_total_virii);
$bar2->SetFillColor('red');
$bar2->SetLegend('Viruses');
! $bar3 = new BarPlot($data_total_spam);
$bar3->SetFillColor('pink');
! $bar3->SetLegend('Spam');
! $bar4 = new BarPlot($data_total_mcp);
! $bar4->SetFillColor('lightblue');
! $bar4->SetLegend('MCP');
$line1 = new LinePlot($data_total_size);
$line1->SetColor('green');
--- 163,177 ----
$bar2 = new BarPlot($data_total_virii);
$bar2->SetFillColor('red');
$bar2->SetLegend('Viruses');
! $bar3 = new BarPlot($data_total_lospam);
$bar3->SetFillColor('pink');
! $bar3->SetLegend('LoSpam');
! $bar4 = new BarPlot($data_total_highspam);
! $bar4->SetFillColor('blue');
! $bar4->SetLegend('HiSpam');
! $bar5 = new BarPlot($data_total_mcp);
! $bar5->SetFillColor('lightblue');
! $bar5->SetLegend('MCP');
$line1 = new LinePlot($data_total_size);
$line1->SetColor('green');
***************
*** 173,179 ****
$line1->SetLegend('Volume (' . $size_info['shortdesc'] . ')');
$line1->SetCenter();
! $abar1 = new AccBarPlot(array($bar2, $bar3, $bar4));
$gbplot = new GroupBarPlot(array($bar1, $abar1));
$graph->AddY2($line1);
--- 179,185 ----
$line1->SetLegend('Volume (' . $size_info['shortdesc'] . ')');
$line1->SetCenter();
! $abar1 = new AccBarPlot(array($bar2, $bar3, $bar4, $bar5));
$gbplot = new GroupBarPlot(array($bar1, $abar1));
$graph->AddY2($line1);
***************
*** 200,211 ****
echo " <TR BGCOLOR=\"#F7CE4A\">\n";
echo " <TH>Date</TH>\n";
echo " <TH>Mail</TH>\n";
! echo " <TH>Virus</TH>\n";
! echo " <TH>%</TH>\n";
! echo " <TH>Spam</TH>\n";
! echo " <TH>%</TH>\n";
! echo " <TH>MCP</TH>\n";
! echo " <TH>%</TH>\n";
echo " <TH>Volume</TH>\n";
echo " <TH> </TH>\n";
echo " <TH>Unknown<BR>Users</TH>\n";
--- 206,216 ----
echo " <TR BGCOLOR=\"#F7CE4A\">\n";
echo " <TH>Date</TH>\n";
echo " <TH>Mail</TH>\n";
! echo " <TH colspan='2'>Virus %</TH>\n";
! echo " <TH colspan='2'>Spam<br>Total %</TH>\n";
! echo " <TH colspan='2'>Spam<br>High %</TH>\n";
! echo " <TH colspan='2'>Spam<br>Low %</TH>\n";
! echo " <TH colspan='2'>MCP %</TH>\n";
echo " <TH>Volume</TH>\n";
echo " <TH> </TH>\n";
echo " <TH>Unknown<BR>Users</TH>\n";
***************
*** 221,226 ****
--- 226,235 ----
echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_virii[$i] / $data_total_mail[$i] * 100, 1) . "</TD>\n";
echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_spam[$i]) . "</TD>\n";
echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_spam[$i] / $data_total_mail[$i] * 100, 1) . "</TD>\n";
+ echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_highspam[$i]) . "</TD>\n";
+ echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_highspam[$i] / $data_total_mail[$i] * 100, 1) . "</TD>\n";
+ echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_lospam[$i]) . "</TD>\n";
+ echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_lospam[$i] / $data_total_mail[$i] * 100, 1) . "</TD>\n";
echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_mcp[$i]) . "</TD>\n";
echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_mcp[$i] / $data_total_mail[$i] * 100, 1) . "</TD>\n";
echo " <TD ALIGN=\"RIGHT\">" . format_mail_size($data_total_size[$i] * $size_info['formula']) . "</TD>\n";
***************
*** 244,249 ****
--- 253,266 ----
mailwatch_array_sum($data_total_spam) / mailwatch_array_sum($data_total_mail) * 100,
1
) . "</TH>\n";
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_highspam)) . "</TH>\n"; echo " <TH ALIGN=\"RIGHT\">" . number_format(
+ mailwatch_array_sum($data_total_highspam) / mailwatch_array_sum($data_total_mail) * 100,
+ 1
+ ) . "</TH>\n";
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_highspam)) . "</TH>\n"; echo " <TH ALIGN=\"RIGHT\">" . number_format(
+ (mailwatch_array_sum($data_total_spam) - mailwatch_array_sum($data_total_highspam) ) / mailwatch_array_sum($data_total_mail) * 100,
+ 1
+ ) . "</TH>\n";
echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_mcp)) . "</TH>\n";
echo " <TH ALIGN=\"RIGHT\">" . number_format(
mailwatch_array_sum($data_total_mcp) / mailwatch_array_sum($data_total_mail) * 100,