Письмо #19663 Списка Рассылки CGatePro@list.communigate.ru
От Кого: Varinov Nicolay <CGatePro@mx.ru>
Кому: CommuniGate Pro Russian Discussions <CGatePro@mx.ru>
Тема: Re: [CGP] Удаление писем из очереди
Дата: Thu, 14 Mar 2013 13:00:03 +0400
День добрый 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.'>$';

------------------------
С наилучшими пожеланиями
Николай Варинов.

Подписаться (Прямо) Подписаться (Дайджест) Подписаться (Оглавление) Отписаться Написать Listmaster-у