more mail statistics

General eFa discussion
Post Reply
User avatar
pdwalker
Posts: 1553
Joined: 18 Mar 2015 09:16

more mail statistics

Post by pdwalker »

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

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>&nbsp;&nbsp;&nbsp;&nbsp;</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&nbsp;%</TH>\n";
! echo "  <TH colspan='2'>Spam<br>Total&nbsp;%</TH>\n";
! echo "  <TH colspan='2'>Spam<br>High&nbsp;%</TH>\n";
! echo "  <TH colspan='2'>Spam<br>Low &nbsp;%</TH>\n";
! echo "  <TH colspan='2'>MCP&nbsp;%</TH>\n";
  echo "  <TH>Volume</TH>\n";
  echo "  <TH>&nbsp;&nbsp;&nbsp;&nbsp;</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,
 
Just remember that this is a change to the mailscanner which would be overwritten on an update.
User avatar
pdwalker
Posts: 1553
Joined: 18 Mar 2015 09:16

Re: more mail statistics

Post by pdwalker »

oh, the graph colors are an ugly eyesore.

I believe this is the correct api for the code building the graph:
http://jpgraph.net/download/manuals/chu ... #id2496153

with the color names defined here:
http://jpgraph.net/download/manuals/chunkhtml/apd.html

but I was unable to get the bar graphs to change color.

I didn't try too hard to work out why this was so.
woundride
Posts: 51
Joined: 19 Mar 2015 14:34
Location: France
Contact:

Re: more mail statistics

Post by woundride »

Thank you
User avatar
pdwalker
Posts: 1553
Joined: 18 Mar 2015 09:16

Re: more mail statistics

Post by pdwalker »

Since I was fixing the stats, I figured I might as well update the mail report as well.

Attached are two replacement files, functions.php and rep_total_mail_by_date.php. I've renamed them to *-new.php so you can download and compare them before actually using them.

These files go in /var/www/html/mailscanner/

The changes:
functions.php

Code: Select all

[user@efa 3.0.0.9]# diff -c functions.php.org functions.php
*** functions.php.org    2016-05-05 15:39:21.390596678 +0800
--- functions.php    2016-05-05 15:39:20.813596182 +0800
***************
*** 169,174 ****
--- 169,183 ----
  ///////////////////////////////////////////////////////////////////////////////
  // Functions
  ///////////////////////////////////////////////////////////////////////////////
+ function suppress_zeros($number)
+ {
+     if (abs($number - 0.0) < 0.1) {
+         return '.';
+     } else {
+         return $number;
+     }
+ }
+
  /**
   * @return string
   */
***************
*** 431,438 ****
      nameinfected>0
      AND (virusinfected=0 OR virusinfected IS NULL)
      AND (otherinfected=0 OR otherinfected IS NULL)
!     AND (isspam=0 OR isspam IS NULL)
!     AND (ishighspam=0 OR ishighspam IS NULL)
     THEN 1 ELSE 0 END
    ) AS blockedfiles,
    ROUND((
--- 440,447 ----
      nameinfected>0
      AND (virusinfected=0 OR virusinfected IS NULL)
      AND (otherinfected=0 OR otherinfected IS NULL)
!     -- AND (isspam=0 OR isspam IS NULL)
!     -- AND (ishighspam=0 OR ishighspam IS NULL)
     THEN 1 ELSE 0 END
    ) AS blockedfiles,
    ROUND((
***************
*** 441,448 ****
       nameinfected>0
       AND (virusinfected=0 OR virusinfected IS NULL)
       AND (otherinfected=0 OR otherinfected IS NULL)
!      AND (isspam=0 OR isspam IS NULL)
!      AND (ishighspam=0 OR ishighspam IS NULL)
      THEN 1 ELSE 0 END
     )/COUNT(*))*100,1
    ) AS blockedfilespercent,
--- 450,457 ----
       nameinfected>0
       AND (virusinfected=0 OR virusinfected IS NULL)
       AND (otherinfected=0 OR otherinfected IS NULL)
!      -- AND (isspam=0 OR isspam IS NULL)
!      -- AND (ishighspam=0 OR ishighspam IS NULL)
      THEN 1 ELSE 0 END
     )/COUNT(*))*100,1
    ) AS blockedfilespercent,
  • fix to the query that determines the top of the page statistics to count blocked files correctly.
  • a minor function to suppress the printing of 0's in the report to make it a little less visually cluttered
rep_total_mail_by_date.php

Code: Select all

[user@efa mailscanner]# diff -c rep_total_mail_by_date.php rep_total_mail_by_date-new.php
*** rep_total_mail_by_date.php    2015-08-29 21:58:08.000000000 +0800
--- rep_total_mail_by_date-new.php    2016-05-05 15:53:16.986362887 +0800
***************
*** 55,62 ****
    DATE_FORMAT(date, $date_format) AS xaxis,
    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 (isspam=0 OR isspam IS NULL) AND ismcp>0 THEN 1 ELSE 0 END) AS total_mcp,
    SUM(size) AS total_size
   FROM
    maillog
--- 55,114 ----
    DATE_FORMAT(date, $date_format) AS xaxis,
    COUNT(*) AS total_mail,
    SUM(CASE WHEN virusinfected>0 THEN 1 ELSE 0 END) AS total_virus,
!
!   SUM(CASE WHEN (
!     isspam>0
!     AND (virusinfected=0 OR virusinfected IS NULL)
!     AND (nameinfected=0 OR nameinfected IS NULL)
!     AND (otherinfected=0 OR otherinfected IS NULL)
!     ) THEN 1 ELSE 0 END
!   ) AS total_spam,
!
!   SUM(CASE WHEN (
!     isspam>0
!     AND (virusinfected=0 OR virusinfected IS NULL)
!     AND (nameinfected=0 OR nameinfected IS NULL)
!     AND (otherinfected=0 OR otherinfected IS NULL)
!     AND (ishighspam=0 OR ishighspam IS NULL)
!     ) THEN 1 ELSE 0 END
!   ) AS total_lowspam,
!
!   SUM(CASE WHEN (
!     ishighspam>0
!     AND (virusinfected=0 OR virusinfected IS NULL)
!     AND (nameinfected=0 OR nameinfected IS NULL)
!     AND (otherinfected=0 OR otherinfected IS NULL)
!     ) THEN 1 ELSE 0 END
!   ) AS total_highspam,
!
!   SUM(CASE WHEN (
!     ismcp>0
!     AND (virusinfected=0 OR virusinfected IS NULL)
!     AND (nameinfected=0 OR nameinfected IS NULL)
!     AND (otherinfected=0 OR otherinfected IS NULL)
!     AND (isspam=0 OR isspam IS NULL)
!     AND (ishighspam=0 OR ishighspam IS NULL)
!     ) THEN 1 ELSE 0 END
!   ) AS total_mcp,
!
!   SUM(CASE WHEN (
!     nameinfected>0
!     AND (virusinfected=0 OR virusinfected IS NULL)
!     AND (otherinfected=0 OR otherinfected IS NULL)
!     ) THEN 1 ELSE 0 END
!   ) AS total_blocked,
!
!   SUM(CASE WHEN (
!     (virusinfected=0 OR virusinfected IS NULL)
!     AND (nameinfected=0 OR nameinfected IS NULL)
!     AND (otherinfected=0 OR otherinfected IS NULL)
!     AND (isspam=0 OR isspam IS NULL)
!     AND (ishighspam=0 OR ishighspam IS NULL)
!     AND (ismcp=0 OR ismcp IS NULL)
!     AND (ishighmcp=0 OR ishighmcp IS NULL)
!     ) THEN 1 ELSE 0 END
!   ) as total_clean,
!
    SUM(size) AS total_size
   FROM
    maillog
***************
*** 111,118 ****
--- 163,174 ----
          $data_labels[] = $row->xaxis;
          $data_total_mail[] = $row->total_mail;
          $data_total_virii[] = $row->total_virus;
+         $data_total_blocked[] = $row->total_blocked;
          $data_total_spam[] = $row->total_spam;
+         $data_total_lowspam[] = $row->total_lowspam;
+         $data_total_highspam[] = $row->total_highspam;
          $data_total_mcp[] = $row->total_mcp;
+         $data_total_clean[] = $row->total_clean;
          $data_total_size[] = $row->total_size;
      }

***************
*** 151,157 ****

      format_report_volume($data_total_size, $size_info);

!     $graph = new Graph(850, 350, 0, false);
      $graph->SetShadow();
      $graph->SetScale("textlin");
      $graph->SetY2Scale("lin");
--- 207,214 ----

      format_report_volume($data_total_size, $size_info);

!     //$graph = new Graph(850, 350, 0, false);
!     $graph = new Graph(1200, 741, 0, false);
      $graph->SetShadow();
      $graph->SetScale("textlin");
      $graph->SetY2Scale("lin");
***************
*** 223,283 ****
  echo " </TR>\n";
  echo " <TR>\n";
  echo "  <TD ALIGN=\"CENTER\">\n";
! echo "<TABLE BORDER=0>\n";
  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";
  if ($is_MCP_enabled === true) {
!     echo "  <TH>MCP</TH>\n";
!     echo "  <TH>%</TH>\n";
  }
! echo "  <TH>Volume</TH>\n";
! echo "  <TH>&nbsp;&nbsp;&nbsp;&nbsp;</TH>\n";
! echo "  <TH>Unknown<BR>Users</TH>\n";
! echo "  <TH>Can't<BR>Resolve</TH>\n";
! echo "  <TH>RBL</TH>\n";
  echo " </TR>\n";

  for ($i = 0; $i < count($data_total_mail); $i++) {
      echo "<TR BGCOLOR=\"#EBEBEB\">\n";
      echo " <TD ALIGN=\"CENTER\">$data_labels[$i]</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_mail[$i]) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_virii[$i]) . "</TD>\n";
!     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";
      if ($is_MCP_enabled === true) {
!         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";
!     echo " <TD><BR></TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format(isset($data_total_unknown_users[$i]) ? $data_total_unknown_users[$i] : 0) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format(isset($data_total_unresolveable[$i]) ? $data_total_unresolveable[$i] : 0) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format(isset($data_total_rbl[$i]) ? $data_total_rbl[$i] : 0) . "</TD>\n";
      echo "</TR>\n";
  }

  echo " <TR BGCOLOR=\"#F7CE4A\">\n";
  echo " <TH ALIGN=\"RIGHT\">Totals</TH>\n";
  echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_mail)) . "</TH>\n";
  echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_virii)) . "</TH>\n";
  echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_virii) / mailwatch_array_sum($data_total_mail) * 100, 1) . "</TH>\n";
- echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_spam)) . "</TH>\n";
- echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_spam) / mailwatch_array_sum($data_total_mail) * 100, 1) . "</TH>\n";
  if ($is_MCP_enabled === true) {
      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, 1) . "</TH>\n";
  }
  echo " <TH ALIGN=\"RIGHT\">" . format_mail_size(mailwatch_array_sum($data_total_size) * $size_info['formula']) . "</TH>\n";
! echo " <TD><BR></TD>\n";
! echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_unknown_users)) . "</TH>\n";
! echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_unresolveable)) . "</TH>\n";
! echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_rbl)) . "</TH>\n";
  echo "</TR>\n";
  echo "</TABLE>\n";
  echo "</TABLE>\n";
--- 280,365 ----
  echo " </TR>\n";
  echo " <TR>\n";
  echo "  <TD ALIGN=\"CENTER\">\n";
! echo "<TABLE BORDER=0 cellspacing=1 cellpadding=2>\n";
  echo " <TR BGCOLOR=\"#F7CE4A\">\n";
! echo "  <TH rowspan='2'>Date</TH>\n";
! echo "  <TH rowspan='2' align='right'>Total<br>Mail</TH>\n";
! echo "  <TH colspan='2'>Clean</TH>\n";
! echo "  <TH nowrap colspan='2'>Low Spam</TH>\n";
! echo "  <TH nowrap colspan='2'>High Spam</TH>\n";
! echo "  <TH nowrap colspan='2'>Blocked</TH>\n";
! echo "  <TH colspan='2'>Virus</TH>\n";
  if ($is_MCP_enabled === true) {
!     echo "  <TH colspan='2'>MCP</TH>\n";
  }
! echo "  <TH rowspan='2'>Volume</TH>\n";
! echo "  <TH bgcolor='#ffffff' rowspan='2'>&nbsp;</TH>\n";
! echo "  <TH rowspan='2'>Unknown<BR>Users</TH>\n";
! echo "  <TH rowspan='2'>Can't<BR>Resolve</TH>\n";
! echo "  <TH rowspan='2'>RBL</TH>\n";
  echo " </TR>\n";

+ echo "<tr BGCOLOR='#F7CE4A'>\n";
+ echo "<th width='50' align='right'>#</th><th width='40' align='right'>%</th>\n";
+ echo "<th width='50' align='right'>#</th><th width='40' align='right'>%</th>\n";
+ echo "<th width='50' align='right'>#</th><th width='40' align='right'>%</th>\n";
+ echo "<th width='50' align='right'>#</th><th width='40' align='right'>%</th>\n";
+ echo "<th width='50' align='right'>#</th><th width='40' align='right'>%</th>\n";
+ echo "<th width='50' align='right'>#</th><th width='40' align='right'>%</th>\n";
+ echo "</tr>\n";
  for ($i = 0; $i < count($data_total_mail); $i++) {
      echo "<TR BGCOLOR=\"#EBEBEB\">\n";
      echo " <TD ALIGN=\"CENTER\">$data_labels[$i]</TD>\n";
!     echo " <TD bgcolor='#ffffff' ALIGN=\"RIGHT\">" . number_format($data_total_mail[$i]) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_clean[$i]) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . number_format($data_total_clean[$i] / $data_total_mail[$i] * 100, 1) . "</TD>\n";
!     echo " <TD bgcolor='#ffffff' ALIGN=\"RIGHT\">" . number_format($data_total_lowspam[$i]) . "</TD>\n";
!     echo " <TD bgcolor='#ffffff' ALIGN=\"RIGHT\">" . number_format($data_total_lowspam[$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 bgcolor='#ffffff' ALIGN=\"RIGHT\">" . suppress_zeros(number_format($data_total_blocked[$i])) . "</TD>\n";
!     echo " <TD bgcolor='#ffffff' ALIGN=\"RIGHT\">" . suppress_zeros(number_format($data_total_blocked[$i] / $data_total_mail[$i] * 100, 1)) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . suppress_zeros(number_format($data_total_virii[$i])) . "</TD>\n";
!     echo " <TD ALIGN=\"RIGHT\">" . suppress_zeros(number_format($data_total_virii[$i] / $data_total_mail[$i] * 100, 1)) . "</TD>\n";
      if ($is_MCP_enabled === true) {
!         echo " <TD bgcolor='#ffffff' ALIGN=\"RIGHT\">" . suppress_zeros(number_format($data_total_mcp[$i])) . "</TD>\n";
!         echo " <TD bgcolor='#ffffff' ALIGN=\"RIGHT\">" . suppress_zeros(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";
!     echo " <TD bgcolor='#ffffff'><BR></TD>\n";
!     echo " <TD ALIGN=\"CENTER\">" . suppress_zeros(number_format(isset($data_total_unknown_users[$i]) ? $data_total_unknown_users[$i] : 0)) . "</TD>\n";
!     echo " <TD ALIGN=\"CENTER\">" . suppress_zeros(number_format(isset($data_total_unresolveable[$i]) ? $data_total_unresolveable[$i] : 0)) . "</TD>\n";
!     echo " <TD ALIGN=\"CENTER\">" . suppress_zeros(number_format(isset($data_total_rbl[$i]) ? $data_total_rbl[$i] : 0)) . "</TD>\n";
      echo "</TR>\n";
  }

  echo " <TR BGCOLOR=\"#F7CE4A\">\n";
  echo " <TH ALIGN=\"RIGHT\">Totals</TH>\n";
  echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_mail)) . "</TH>\n";
+
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_clean)) . "</TH>\n";
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_clean) / mailwatch_array_sum($data_total_mail) * 100, 1) . "</TH>\n";
+
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_lowspam)) . "</TH>\n";
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_lowspam) / 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_blocked)) . "</TH>\n";
+ echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_blocked) / mailwatch_array_sum($data_total_mail) * 100, 1) . "</TH>\n";
+
  echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_virii)) . "</TH>\n";
  echo " <TH ALIGN=\"RIGHT\">" . number_format(mailwatch_array_sum($data_total_virii) / mailwatch_array_sum($data_total_mail) * 100, 1) . "</TH>\n";
  if ($is_MCP_enabled === true) {
      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, 1) . "</TH>\n";
  }
  echo " <TH ALIGN=\"RIGHT\">" . format_mail_size(mailwatch_array_sum($data_total_size) * $size_info['formula']) . "</TH>\n";
! echo " <TD bgcolor='#ffffff'><BR></TD>\n";
! echo " <TH ALIGN=\"CENTER\">" . number_format(mailwatch_array_sum($data_total_unknown_users)) . "</TH>\n";
! echo " <TH ALIGN=\"CENTER\">" . number_format(mailwatch_array_sum($data_total_unresolveable)) . "</TH>\n";
! echo " <TH ALIGN=\"CENTER\">" . number_format(mailwatch_array_sum($data_total_rbl)) . "</TH>\n";
  echo "</TR>\n";
  echo "</TABLE>\n";
  echo "</TABLE>\n";
PS: please remember, they will be wiped out during an EFA upgrade. I've lost my revised report twice already from that, so don't be a slow learner like I.
Attachments
rep_total_mail_by_date-new.php.zip
(3.95 KiB) Downloaded 225 times
functions-new.php.zip
(24.88 KiB) Downloaded 218 times
Post Reply