1

Тема: очистка очереди писем

Здравствуйте.

Почитал форум, как новичек нашёл для себя много полезного, спасибо smile
Но остался вот такой вопрос:
имеется сервер на FreeBSD; postfix.
когда кто-то из юзверей ловит гадость и валит спам, с помощью mailq вижу очередь, но дальше пока бессилен hmm
как удалить все эти письма (или все письма с одного IP) из очереди?
заранее спасибо

2

Re: очистка очереди писем

По mailq можно найти какбы номер письма, самый первый параметр. Вот потом на основнии него и удалить.
Я делал так, правда очень давно:
Создал файл с содержимым:

poisk=`find /var/spool/postfix | grep $1`
rm -f $poisk
echo "File(s) $poisk was deleted"

сделал этот файл выполнимым и потом запускал: /путь к скрипту/имя_скрипта номер_письма
Можно указывать не понлый номер, тода удалит все письма, с которыми совпадет введеный номер.

Но чтобы не валило ничего, надо прикреплять фаервол, антиспам и не только на сервере, но и у поьзователей.

Добавлено спустя     1 минуту   44 секунды:
в скрипте конечно похорошему сделать проверку на то что файлы удалены, но как то я на это забил, а сейчас просто уже не нужно.

3

Re: очистка очереди писем

спасибо за ответ! вот только если писем например 3 тыщщи, это что же - 3000 разных ID писем использовать?
ps

crash пишет:

Но чтобы не валило ничего, надо прикреплять фаервол, антиспам и не только на сервере, но и у поьзователей.

прикрепляем... но периодически проблема всплывает sad(

4

Re: очистка очереди писем

можете сделать не по всему коду,а например по первым двум буквоцифрам. Тогда правда удалиться могут и нормальные письма.

5

Re: очистка очереди писем

ок wink
простите мне мою настойчивость. а Ваш скрипт можно каким-то образом выполнять не файлом, а командами? тк я пока новичёк и всё такое...

6

Re: очистка очереди писем

так а файлом в чем проблема.
Создаете файл, вставляете код. Делаете выполним с помощью команды chmod 755 имя_файла  и просто его выполняете

7

Re: очистка очереди писем

ну проблема в том что я _очень новичёк_  wink  плюс не хотелось бы ничего в системе трогать, тк не один админю.
так возможно или нет?

PS нашел для себя postsuper -d ALL

Отредактированно desia (22-10-2008 16:48:06)

8

Re: очистка очереди писем

возможно все.

desia пишет:

плюс не хотелось бы ничего в системе трогать

а чего трогать то? Создаете в свой директории файлик и все.

desia пишет:

PS нашел для себя postsuper -d ALL

тоже не плохо.

9

Re: очистка очереди писем

мдя...
под рукой заспаменый qmail но тут не это важно, а принцип, специально делаю всё командами

смотрим сколко писем, грубо

# ls -R /var/qmail/queue/|wc -l
2525

к примеру смотим по теме

grep -iR 'subject: Hi ddd' /var/qmail/queue/|wc -l
1483

1483 письма с одинаковой темои

вытаскиваем номера писем

#grep -iR 'subject: Hi ddd' /var/qmail/queue/|awk -F "/" {'print $5'}|awk -F "." {'print $1'}
...
12464718
12463832
985224
984220
985784
983476
984204
984034
987960
985984
986662
985922
985122
987874
985418
986172
984868
...

ну а тепер протираем

# grep -iR 'subject: Hi ddd' /var/qmail/queue/|awk -F "/" {'print $5'}|awk -F "." {'print "rm -fv /var/qmail/query/" $1 "*"'}|sh

основные команды это (find, grep и awk) + regexp, если научится ими пользоватся, то можно и логи просматривать быстро и с файлами работать... сильно помогает.

Добавлено спустя     3 минуты   18 секунд:
a это тоже надо умет http://www.postfix.org/postsuper.1.html

Добавлено спустя     7 минут   59 секунд:

postsuper -d ALL

за это когданить по голове получите от босса за важные пропавшие писма

10

Re: очистка очереди писем

SatanaClause пишет:

за это когданить по голове получите от босса за важные пропавшие писма

smile эт точно...

11

Re: очистка очереди писем

а все-таки, возможно удалить все письма только от одного (спамящего) IP?

crash пишет:

можете сделать не по всему коду,а например по первым двум буквоцифрам. Тогда правда удалиться могут и нормальные письма.

это как? postsuper -d F2* ?
и ещё вопрос, простите если глупый: postfix перед удалением этих дел надо останавливать?

12

Re: очистка очереди писем

SatanaClause пишет:

основные команды это (find, grep и awk) + regexp, если научится ими пользоватся, то можно и логи просматривать быстро и с файлами работать... сильно помогает.

# grep -iR 'subject: Hi ddd' /var/qmail/queue/|awk -F "/" {'print $5'}|awk -F "." {'print "rm -fv /var/qmail/query/" $1 "*"'}|sh

тут ведь пример хороший Алан написал. Только надо понять как он работает и подставить нужные буквы.

Добавлено спустя     1 минуту   14 секунд:
postfix перед удалением лучше остановить. Хотя можно и не останавливать. Письма то уходят...

13

Re: очистка очереди писем

desia
После этого лучше его перегрузить. А если моим способом то искать можно по любой части письма.

14

Re: очистка очереди писем

SatanaClause пишет:

А если моим способом то искать можно по любой части письма.

это так что ли: # grep -iR 'received: IP_отправителя' /var/qmail/queue/|awk -F "/" {'print $5'}|awk -F "." {'print "rm -fv /var/qmail/query/" $1 "*"'}|sh

или # grep -iR 'return-path: адрес_отправителя' /var/qmail/queue/|awk -F "/" {'print $5'}|awk -F "." {'print "rm -fv /var/qmail/query/" $1 "*"'}|sh  (т.к. сам дрес отправителя всё равно подменяется на левый какой-то)

Отредактированно desia (23-10-2008 11:40:06)

15

Re: очистка очереди писем

Ну так берем любую очередь и ищим... тока |sh убрать надо, тогда ничего небудит выполнятся, просто будут выводится на экран команды.

16

Re: очистка очереди писем

пардон, а можно на примере для непонятливых?

очень было бы удобно грохать все письма с одного IP, но это нереализуемо, да?

17

Re: очистка очереди писем

хмм, открываем писмо, и смотрим в загаловок, там есть ип адрес отправителя... вот по нему и надо искать. В чем проблрма то? Давай сюда какоенибудь смаммерское письмо, покажу на пальцах.

18

Re: очистка очереди писем

к сож (вернее к счастью wink )  нет спама сейчас. ну вот например, есть письмо, в заголовках видны реальный и залепушный IP отправителя. мои действия?

19

Re: очистка очереди писем

мои действия?

Перечитать топик заного, помойму написано больее чем ясно.

Вот к примеру спамерское письма, точнее заголовок

Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from antispam (localhost [127.0.0.1])
     by localhost (Postfix) with ESMTP id 7CF2828427
     for <[email protected]>; Sat, 25 Oct 2008 19:33:30 +0300 (EEST)
X-Spam-Checker-Version: SpamAssassin 3.1.6 (2006-10-03) on mail.bbbbb.lt
X-Spam-Level: **
X-Spam-Status: No, score=2.7 required=4.8 tests=ALL_TRUSTED,BAYES_95,
     DNS_FROM_SECURITYSAGE autolearn=disabled version=3.1.6
Received: from genocide (localhost [127.0.0.1])
     by localhost (Postfix) with ESMTP id 1C9162841C
     for <[email protected]>; Sat, 25 Oct 2008 19:33:27 +0300 (EEST)
Received: from mailhub (localhost [127.0.0.1])
     by localhost (Postfix) with ESMTP id 1689C28455
     for <[email protected]>; Sat, 25 Oct 2008 19:31:04 +0300 (EEST)
Received: from kim (26.36.125.91.rb3.adsl.brightview.com [91.125.36.26])
     by mail.bbbbb.lt (Postfix) with SMTP id 2F85428451;
     Sat, 25 Oct 2008 19:31:02 +0300 (EEST)
Date: Sat, 25 Oct 2008 17:30:32 +0000
From: Clarissa Whittaker <[email protected]>
Subject: contests win money
To: <[email protected]>
Message-id: <45130201c936bf$0fa62550$0302a8c0@kim>
MIME-Version: 1.0
X-MIMEOLE: Produced By Microsoft MimeOLE V6.0.6001.18049
X-Mailer: Microsoft Windows Mail 6.0.6001.18000
Content-type: text/plain; format=flowed; charset=iso-8859-1; reply-type=original
Content-transfer-encoding: 7bit
X-Priority: 3
X-MSMail-priority: Normal

эта строка показывает от каковасервера я получил письмо

Received: from kim (26.36.125.91.rb3.adsl.brightview.com [91.125.36.26])

следовательно по этой строке я могу найти все письма от этого сервера и удалить.