Re: Удаление писем из очереди

От: Varinov Nicolay <CGatePro_at_mx_ru>
Дата: Thu 14 Mar 2013 - 13:00:03 MSK

День добрый Victor,

Thursday, March 14, 2013, 6:45:55 AM, Вы пишете:

VS> Коллеги,

VS> Не встречал ли кто утилиту для удаления писем из очереди CGP, VS> например, по IP адресу отправителя, а лучше по имени аккаунта.

VS> Надо почистить очередь от тысяч писем, отправленных трояном у клиента. VS> Желательно, чтобы работало через CLI без остановки сервера. VS> Заранее спасибо за совет.

Делалось очень давно. но работает.
По отправителю:

#!/usr/bin/perl -w
use CLI;
if (defined($ARGV[0]))
{

 $user = $ARGV[0];
 }
else
{

 printf ("Wrong format\nUse delQ.pl sender_email\n");  exit;
 }
my $cli = new CGP::CLI( { PeerAddr => 'hostname',

                        PeerPort => '106',
                        login    => 'postmaster@hostname',
                        password => 'password'
                        } )
        || die "Can't login to CGPro: ".$CGP::ERR_STRING."\n";
my @TMP = `grep -E -r "P*<$user>" /var/CommuniGate/Queue`; foreach my $i (@TMP)
{

 my $t = '^/var/CommuniGate/Queue/\d\d/(\d+).msg:P.+<'.$user.'>$';  if($i =~ /$t/)
  {
  $cli->RejectQueueMessage($1);
  printf ("#$1\n");
  }
 }
$cli->Logout;

если по получателю поменять grep на
my @TMP = `grep -E -r "R*<$user>" /var/CommuniGate/Queue`; и regexp проверки
 my $t = '^/var/CommuniGate/Queue/\d\d/(\d+).msg:R.+<'.$user.'>$';



С наилучшими пожеланиями
Николай Варинов. Получено Thu Mar 14 09:00:11 2013

Этот архив был сгенерирован hypermail 2.1.8 : Thu 14 Mar 2013 - 13:17:11 MSK