diff --git a/cgi-bin/sa_report.cgi b/cgi-bin/sa_report.cgi index d9bbef3..469b5c6 100755 --- a/cgi-bin/sa_report.cgi +++ b/cgi-bin/sa_report.cgi @@ -1165,7 +1165,7 @@ sub show_stats } elsif ($type eq 'topsender') { # Get sender statistics &get_sender_stat($hostname,$year,$m,$d,$mon,$mday,$hour); - &get_recipient_stat($hostname,$year,$m,$d,$mon,$mday,$hour) if ($DOMAIN); + &get_recipient_stat($hostname,$year,$m,$d,$mon,$mday,$hour); } elsif ($type eq 'toprecipient') { # Get recipient statistics &get_sender_stat($hostname,$year,$m,$d,$mon,$mday,$hour) if ($DOMAIN); @@ -3032,6 +3032,8 @@ sub compute_top_sender { foreach my $id (keys %STATS) { next if ($DOMAIN && ($STATS{$id}{sender} !~ /$DOMAIN/) && !grep(/$DOMAIN/, @{$STATS{$id}{rcpt}})); + # Only compute top sender on sent messages + next if (!grep(/Sent/, @{$STATS{$id}{status}})); $topsender{email}{$STATS{$id}{sender}}++; if ($STATS{$id}{sender} =~ /\@(.*)/) { $topsender{domain}{$1}++; diff --git a/sa_cache b/sa_cache index a5d70f2..ac5b935 100644 --- a/sa_cache +++ b/sa_cache @@ -654,7 +654,7 @@ sub compute_top_stats push(@{$topmaxrcpt{$STATS->{$id}{nrcpt}}{sender}}, $STATS->{$id}{sender}); push(@{$topmaxrcpt{$STATS->{$id}{nrcpt}}{sa_id}}, $id); } - if ($STATS->{$id}{sender}) { + if ($STATS->{$id}{sender} && grep(/Sent/, @{$STATS->{$id}{status}})) { my $sender = $STATS->{$id}{sender}; $topsender{email}{$sender}++; my $dom = $sender || '';