SF.net SVN: postfixadmin:[543] trunk/ADDITIONS/delete-mailq-by-domain.pl
Brought to you by:
christian_boltz,
gingerdog
From: <Gin...@us...> - 2009-01-23 22:23:00
|
Revision: 543 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=543&view=rev Author: GingerDog Date: 2009-01-23 21:40:50 +0000 (Fri, 23 Jan 2009) Log Message: ----------- user contributed script - Jose Nilton <jni...@gm...> Added Paths: ----------- trunk/ADDITIONS/delete-mailq-by-domain.pl Added: trunk/ADDITIONS/delete-mailq-by-domain.pl =================================================================== --- trunk/ADDITIONS/delete-mailq-by-domain.pl (rev 0) +++ trunk/ADDITIONS/delete-mailq-by-domain.pl 2009-01-23 21:40:50 UTC (rev 543) @@ -0,0 +1,77 @@ +#!/usr/bin/perl + + +use strict; +use warnings; +use Getopt::Long; + + +$ENV{'PATH'} = "/sbin:/bin:/usr/sbin:/usr/bin"; + +my ($domain); +my $list = 0; + +(help()) if (!$ARGV[0]); +GetOptions ('l' => \$list, 'd=s' => \$domain) or (help()); + + +(list_queue()) if ($list == 1); + +(delete_queue()) if ($domain); + + +sub delete_queue { +my $ids = `postqueue -p`; +my @ids = split /\n/, $ids; + +for my $id (@ids) { + next if $id =~ /^[\s\(-]/; + chomp $id; + next unless $id; + $id =~ s/(.*?)\**\s.*/$1/; + #print "$id\n"; + my $match = `postcat -q $id | grep '$domain'`; + next unless $match; + #print "Deleting ID: $id\n"; + my $saida = `postsuper -d $id`; + print $saida; +} + +} + + + + +sub list_queue { +my %hash_mail = (); +my @queue = `postqueue -p`; +my($queue,$key,$total); + + +foreach $queue(@queue) { + chomp $queue; + if ( $queue =~ /^\s+.*\@(.*)/ ) { + $hash_mail{$1}++; + } +} +print"\nTOTAL\tTO\n"; +print"----- +----------------------------------------------------------------\n"; +foreach $key (reverse sort { $hash_mail{$a} <=> $hash_mail{$b}} keys +%hash_mail) { + $total += $hash_mail{$key}; + print"$hash_mail{$key} - $key\n"; +} +print"\n$total -> TOTAL QUEUE\n"; + +} + + +sub help { +print "Usage $0 -l To list a row of E-mail +Usage $0 -d domain.com To delete the mensgens the Domain\n"; +} + + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |