Управляем почтовой очередью в MTA Qmail на сервере FreeBSD.
qmqtool
Порт: /usr/ports/mail/qmqtool
Сайт: http://jeremy.kister.net/code/qmqtool
qmqtool — утилита для просмотра очереди qmail и манипулирования сообщениями. По функциональности аналогична qmHandle, но имеет более удобный интерфейс (как для управления так и для просмотра результатов) и использует альтернативный метод для удаления сообщений из очереди (принудительное «устаревание» сообщений), который позволяет безопасно удалять письма без остановки почтовой системы.
qmqtool version 1.13
syntax: qmqtool [-l] [-L] [-R] [-S [-nN]] [-T] [-s] [-Q] [-c] [-r] [-i [-nN]] [-V]
[-E(A|R|L)] [-U(A|R|L)] [-vN [-w]] [-e(N|[-f 'STRING'|-oN])] [-u(N|[-f 'STRING'|-oN])]
[-d(N|[-f 'STRING'|-oN])] [-f 'STRING'] [-oN] [-B(b|r)]
-l list messages in all parts of the queue
-L list messages in local queue
-R list messages in remote queue
-T list messages in todo queue
-s show statistical information
-Q be as quiet as possible (useful for snmp, cron, and such)
-V be more verbose
-B
b Backup queue into /var/qmail/queue.backup/
r Restore backup from /var/qmail/queue.backup/
-c check queue consitancy
-r repair queue (by deleting fragments) found by checking queue consistancy
-i show how many messages are queued per ip
-nN pay attention to the Nth last smtp-hop
-S show how many bytes are queued per ip
-e expire message
may specify N (multiples may be comma separated), or -f 'STRING' and/or -o N
-u unexpire message
may specify N (multiples may be comma separated), or -f 'STRING' and/or -o N
-d delete message
may specify N (multiples may be comma separated), or -f 'STRING' and/or -o N
-E expire messages in [A]ll, [R]emote, or [L]ocal queues
-U unexpire messages in [A]ll, [R]emote, or [L]ocal queues
-v
N view first 100 lines of message number N
N -w view whole message N
-f 'STRING' display comma separated list of message number(s) containing STRING.
prints 0 if no matches are found.
-o N display comma separated list of message number(s) older than N hours.
prints 0 if no matches are found.
Примеры
Посмотреть очередь в порядке ‘local’, ‘remote’, and ‘todo’:
qmqtool -s -Q
Посмотреть почтовую очередь по типам:
qmqtool [-l] [-L] [-R] [-T]
- -l => вся очередь
- -L => очередь local
- -R => очередь remote
- -T => очередь todo
Посмотреть информацию по всей очереди:
qmqtool -l
Показывает первые 100 строчек сообщения с ID 3368277:
qmqtool -v 3368277
Устаревает в очереди письма, в которых содержится такая строка
qmqtool -e -f ‘192.168.1.10’
Пример, когда сервер был заспамлен кем то.
Смотрим на очереди и видим, что у нас большая исходящая очередь:
qmqtool -s -Q
3
18554
199
Просматриваем все очереди и выбираем подозрительное письмо:
qmqtool -l | more
3368277 (3, remote)
Envelope Sender: 04.1.0.656D696C79636F6C7440686F746D61696C2E636F6D@domain.ru
Envelope Recipient: wc52@hotmail.com (To Be Delivered)
Envelope Recipient: wfiler@hotmail.com (To Be Delivered)
Envelope Recipient: poohandhomer@hotmail.com (To Be Delivered)
Envelope Recipient: cabron76@hotmail.com (To Be Delivered)
Envelope Recipient: devo1977@hotmail.com (To Be Delivered)
Envelope Recipient: claus_qvist@hotmail.com (To Be Delivered)
Envelope Recipient: klenakis@hotmail.com (To Be Delivered)
Date: Fri, 10 Oct 2008 05:40:57 +0800
From: "emily at MySpace" <04.1.0.656D696C79636F6C7440686...
To: <wc52>
Subject: emily invites you to MySpace
Смотрим первые 100 строчек подозрительного письма и находим IP-адрес «плохого»:
qmqtool -v 3368277 | more
MESSAGE NUMBER 3368277:
Received: (qmail 25338 invoked from network); 10 Oct 2008 05:39:48 +0300
Received: from 192-168-1-10.domain.com [192.168.1.10] (HELO domain.ru)
by mail.domain.ru with ESMTP; 10 Oct 2008 05:39:49 +0300
Received: from smtp18.yenddx.com ([87.7.74.130]) by mxs.perenter.com with ESMTP; Fri, 10 Oct 2008 04:49:54 +0400
Received: from mailout.endmonthnow.com [4.27.168.168] by mail.webhostings4u.com with SMTP; Fri, 10 Oct 2008 03:36:22 +0400
Received: from [198.252.208.227] by rly04.hottestmile.com with SMTP; Fri, 10 Oct 2008 02:22:10 +0400
Received: from unknown (HELO m1.gns.snv.thisdomainl.com) (Fri, 10 Oct 2008 02:05:54 +0400)
by mtu67.syds.piswix.net with ASMTP; Fri, 10 Oct 2008 02:05:54 +0400
Message-ID: <E49C5996>
Date: Fri, 10 Oct 2008 00:44:13 +0400
Reply-To: "emily at MySpace" <04>
From: "emily at MySpace" <04>
MIME-Version: 1.0
To: <damoon_tar>
Subject: emily invites you to MySpace
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
emily is a member of MySpace and is inviting you to join.
Выполняем команду на «устаревание» всех писем в очереди, в которых в заголовке содержится строка «192.168.1.10»:
qmqtool -e -f ‘192.168.1.10’
Проверяем очереди ещё раз:
qmqtool -s -Q
3
147
199
Видим, что очередь уменьшилась. Так же можно просто удалить эти письма:
qmqtool -d -f ‘192.168.1.10’
Но удалять письма из очереди нужно только при остановленном qmail.
qmHandle
Порт: /usr/ports/mail/qmhandle
Сайт: http://sourceforge.net/projects/qmhandle/
qmHandle v1.3.2
Copyright 1998-2003 Michele Beltrame
Available parameters:
-a : try to send queued messages now (qmail must be running)
-l : list message queues
-L : list local message queue
-R : list remote message queue
-s : show some statistics
-mN : display message number N
-dN : delete message number N
-fsender : delete message from sender
-f're' : delete message from senders matching regular expression re
-Stext : delete all messages that have/contain text as Subject
-h're' : delete all messages with headers matching regular expression re (case insensitive)
-b're' : delete all messages with body matching regular expression re (case insensitive)
-H're' : delete all messages with headers matching regular expression re (case sensitive)
-B're' : delete all messages with body matching regular expression re (case sensitive)
-t're' : flag messages with recipients in regular expression 're' for earlier retry (note: this lengthens the time message can stay in queue)
-D : delete all messages in the queue (local and remote)
-V : print program version
Additional (optional) parameters:
-c : display colored output
-N : list message numbers only
(to be used either with -l, -L or -R)
Примеры
Просмотр очередей:
qmHandle -l
Просмотр письма ID 2049438:
qmHandle -m2049438
Удалить все письма с subject «Test»:
qmHandle -S»Test»
Удалять письма из очереди нужно только при остановленном qmail.
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Авторы: Николаев Дмитрий (virus (at) subnets.ru) && Debugger