| Current File : //proc/2/root/usr/local/scripts/findfilters.pl |
#!/usr/local/cpanel/3rdparty/bin/perl
use Email::Valid;
use lib '/usr/local/share/perl5';
use Cpanel::SafetyBits ();
use Cpanel::AcctUtils ();
use Cpanel::PublicAPI ();
use Cpanel::LiveAPI ();
use MIME::Lite;
use JSON;
use Data::Dumper;
$DEBUG=0;
$server = `hostname`;
chomp($server);
@users = `ls -last /var/cpanel/users |awk {\'print \$10\'}`;
$msga = "";
foreach $user ( @users) {
# "rules" : [
# {
# "part" : "$header_from:",
# "match" : "contains",
# "val" : "@",
# "opt" : "or"
# }
# ],
# "filtername" : "..",
# "actions" : [
# {
# "dest" : "ozkgroupltd032@gmail.com",
# "action" : "deliver"
# },
# {
# "action" : "save",
# "dest" : "$home/mail/tecmacal.pt/tecmacal/INBOX"
# }
# ],
# "enabled" : 1,
# "unescaped" : 1
chomp($user);
next if $user eq "";
next if $user eq ".";
next if $user eq "..";
next if $user eq "system";
print "Processing $user ...\n" if $DEBUG;
@pops = `uapi --user=$user Email list_pops \|grep email`;
foreach $popa ( @pops ){
$forward = "";
chomp($popa);
(undef,$pop) = split(/\:/,$popa);
($mail,$domain) = split(/\@/,$pop);
$mail =~ s/ //g;
$conta = $mail."%40".$domain;
$cenas = `uapi --user=$user Email list_filters account=$conta --output=jsonpretty`;
$content = decode_json($cenas);
$filtro = $content->{result}->{data}[0]->{filtername};
$forward = $content->{result}->{data}[0]->{actions}[0]->{dest};
$cena1 = $content->{result}->{data}[0]->{rules}[0]->{part};
$cena2 = $content->{result}->{data}[0]->{rules}[0]->{match};
$cena3 = $content->{result}->{data}[0]->{rules}[0]->{val};
$condicao = "$cena1 - $cena2 - $cena3";
next if ($forward eq "");
if ( Email::Valid->address($forward) ){
$msga = $msga . "User: $user - Conta $pop - Filtername: $filtro - Forward: $forward ( $condicao ) <br>" if (length($filtro) <= 8 );
}
}
}
mandamail($server,$msga);
sub mandamail {
($server,$msga) = @_;
$msg = "Server $server - Filter List length <= 8 !!!! <BR><BR>";
$msg = $msg . $msga;
$to = "pazevedo\@ptisp.pt";
$mesg = MIME::Lite->new(
From =>'FilterSearch <message@ptisp.pt>',
To =>$to,
Subject =>"Filter list - $server ",
Data =>$msg,
Type =>'text/html'
);
$usr = "message\@ptisp.systems";
$pass = "geicu7ohy4utaiceiN6eGe";
$mesg->send('smtp', 'mta.ptisp.systems', AuthUser=>$usr, AuthPass=>$pass, Timeout=>60,);
}