1 |
brianr |
1.1 |
diff -urN smeserver-mailstats-1.1.old/root/etc/cron.d/mailstats smeserver-mailstats-1.1/root/etc/cron.d/mailstats |
2 |
|
|
--- smeserver-mailstats-1.1.old/root/etc/cron.d/mailstats 1970-01-01 01:00:00.000000000 +0100 |
3 |
|
|
+++ smeserver-mailstats-1.1/root/etc/cron.d/mailstats 2021-04-02 10:20:03.578882758 +0100 |
4 |
|
|
@@ -0,0 +1 @@ |
5 |
|
|
+0 0 * * * root sleep $[ $RANDOM \% 3600 ]; /usr/bin/runmailstats.sh |
6 |
|
|
diff -urN smeserver-mailstats-1.1.old/root/etc/cron.d/mailstats.cron smeserver-mailstats-1.1/root/etc/cron.d/mailstats.cron |
7 |
|
|
--- smeserver-mailstats-1.1.old/root/etc/cron.d/mailstats.cron 2021-04-02 10:01:02.017494160 +0100 |
8 |
|
|
+++ smeserver-mailstats-1.1/root/etc/cron.d/mailstats.cron 1970-01-01 01:00:00.000000000 +0100 |
9 |
|
|
@@ -1,2 +0,0 @@ |
10 |
|
|
-0 0 * * * root sleep $[ $RANDOM \% 3600 ]; perl /usr/bin/mailstats.pl /var/log/qpsmtpd/\@* /var/log/qpsmtpd/current /var/log/sqpsmtpd/\@* /var/log/sqpsmtpd/current |
11 |
|
|
- |
12 |
|
|
diff -urN smeserver-mailstats-1.1.old/root/usr/bin/mailstats.pl smeserver-mailstats-1.1/root/usr/bin/mailstats.pl |
13 |
|
|
--- smeserver-mailstats-1.1.old/root/usr/bin/mailstats.pl 2021-04-02 10:01:02.026494244 +0100 |
14 |
|
|
+++ smeserver-mailstats-1.1/root/usr/bin/mailstats.pl 2021-04-02 12:02:01.776104517 +0100 |
15 |
|
|
@@ -1,4 +1,5 @@ |
16 |
|
|
-#!/usr/bin/perl -w |
17 |
|
|
+#!/usr/bin/perl |
18 |
|
|
+use strict; |
19 |
|
|
|
20 |
|
|
############################################################################# |
21 |
|
|
# |
22 |
|
|
@@ -13,7 +14,7 @@ |
23 |
|
|
# - Sort out geoip failure status as per Bug 4262 |
24 |
|
|
# - change final message about the DB (it is created automatically these days by the rpm) |
25 |
|
|
# bjr - 17Jun15 - Add annotation showing Badcountries being eliminated |
26 |
|
|
-# - correct Spamfilter details extract, as per Bug 8656 |
27 |
|
|
+# - correct Spamfilter details extract, as per Bug 8656 |
28 |
|
|
# - Add analysis table of Geoip results |
29 |
|
|
# bjr - 19Jun15 - Add totals for the League tables |
30 |
|
|
# bjr and Unnilennium - 08Apr16 - Add in else for unrecognised plugin detection |
31 |
|
|
@@ -30,6 +31,7 @@ |
32 |
|
|
# bjr - 18Dec19 - Sort out a few format problems and also remove some debugging crud - Bug 10858 |
33 |
|
|
# bjr - 18Dec19 - change to fix truncation of email address in by email table - bug 10327 |
34 |
|
|
# bjr - 18Oct20 - Alter use of lc to avoid uninitialised messages - bug 11044 |
35 |
|
|
+# bjr - 02Apr21 - Fix up lc to try to avoif uninit messages - and alter warning status - bug 11519 |
36 |
|
|
# |
37 |
|
|
############################################################################# |
38 |
|
|
# |
39 |
|
|
@@ -102,7 +104,7 @@ |
40 |
|
|
|
41 |
|
|
#Configuration section |
42 |
|
|
my %opt = ( |
43 |
|
|
- version => '0.7.14', # please update at each change. |
44 |
|
|
+ version => '0.7.15', # please update at each change. |
45 |
|
|
debug => 0, # guess what ? |
46 |
|
|
sendmail => '/usr/sbin/sendmail', # Path to sendmail stub |
47 |
|
|
from => 'spamfilter-stats', # Who is the mail from |
48 |
|
|
@@ -386,7 +388,7 @@ |
49 |
|
|
$counts{$PERCENT}{$categs[$ncateg]} = 0; |
50 |
|
|
|
51 |
|
|
if ($cdb->get('mailstats')){ |
52 |
|
|
- $display[$ncateg] = lc($cdb->get('mailstats')->prop($categs[$ncateg]) || "auto"); |
53 |
|
|
+ $display[$ncateg] = lc($cdb->get_prop('mailstats',$categs[$ncateg]) || "auto"); |
54 |
|
|
} else { |
55 |
|
|
$display[$ncateg] = 'auto' |
56 |
|
|
} |
57 |
|
|
@@ -783,7 +785,7 @@ |
58 |
|
|
if ($localflag == 0) { |
59 |
|
|
if (length($log_items[4]) > 0){ |
60 |
|
|
# Need to check here for multiple email addresses |
61 |
|
|
- my @emails = split(",",lc($log_items[4])); |
62 |
|
|
+ my @emails = split(",",lc($log_items[4] || ' ')); |
63 |
|
|
if (scalar(@emails) > 1) { |
64 |
|
|
#Just pick the first local address to hang it on. |
65 |
|
|
# TEMP - just go for the first address until I can work out how to spot the 1st "local" one |
66 |
|
|
@@ -796,11 +798,13 @@ |
67 |
|
|
my $fullemail = $email; |
68 |
|
|
$email = s/.*\@(.*)$/$1/; |
69 |
|
|
#and see if it is local |
70 |
|
|
- if ($email =~ m/$alldomains/){ |
71 |
|
|
- $usercounts{lc($fullemail)}{$result}++; |
72 |
|
|
- $usercounts{lc($fullemail)}{"proc"} = $proc; |
73 |
|
|
- $gotone = $true; |
74 |
|
|
- last; |
75 |
|
|
+ if (length($fullemail)>0) { |
76 |
|
|
+ if ($email =~ m/$alldomains/){ |
77 |
|
|
+ $usercounts{lc($fullemail || ' ')}{$result}++; |
78 |
|
|
+ $usercounts{lc($fullemail || ' ')}{"proc"} = $proc; |
79 |
|
|
+ $gotone = $true; |
80 |
|
|
+ last; |
81 |
|
|
+ } |
82 |
|
|
} |
83 |
|
|
} |
84 |
|
|
if (!$gotone) { |
85 |
|
|
diff -urN smeserver-mailstats-1.1.old/root/usr/bin/runmailstats.sh smeserver-mailstats-1.1/root/usr/bin/runmailstats.sh |
86 |
|
|
--- smeserver-mailstats-1.1.old/root/usr/bin/runmailstats.sh 1970-01-01 01:00:00.000000000 +0100 |
87 |
|
|
+++ smeserver-mailstats-1.1/root/usr/bin/runmailstats.sh 2021-04-02 10:12:16.681578199 +0100 |
88 |
|
|
@@ -0,0 +1,3 @@ |
89 |
|
|
+#!/bin/bash |
90 |
|
|
+exec 1> >(logger -t $(basename $0)) 2>&1 |
91 |
|
|
+perl /usr/bin/mailstats.pl /var/log/qpsmtpd/\@* /var/log/qpsmtpd/current /var/log/sqpsmtpd/\@* /var/log/sqpsmtpd/current |