Обрабатываем почтовую очередь в Qmail


Qmail не является последним словом в технологии доставки почты, но этот smtp демон до сих пор очень распространен. В частности многие сервера с Plesk панелью используют именно Qmail.

Для того что бы посмотреть список сообщений ожидающих отправки (посмотреть очередь доставки) можно воспользоваться следующей утилитой:

/var/qmail/bin/qmail-qread

Посчитать количество сообщений в очереди поможет следующий скрипт:

/var/qmail/bin/qmail-qstat

Все немного сложнее с чтением содержания писем. Дело в том, что письмо распределено по трем файлам в следующих папках:

  • /var/qmail/queue/info/
  • /var/qmail/queue/remote/
  • /var/qmail/queue/mess/

Именемфайла является id сообщения. ID сообщений выводится в результатах выполнения первой команды. Как правило она возвращает что-то в стиле:

6 Jan 2016 09:18:13 GMT #10817428 642 <somebox@somemail.com>
remote somebox@somemail.com

ID сообщения выделен жирным.

Прочитать содержимое письма можно с помощью дополнительных телодвижений:

find /var/qmail/queue -name NNNN -exec cat {} \; | less

NNNN - это и есть id сообщения.

Следующий цикл выведет список скриптов которые инициализировали отправку писем в очереди:

for f in $(/var/qmail/bin/qmail-qread |cut -d "#" -f 2 |awk '{print $1}' |sort -u);
do 
   find /var/qmail/queue -name $f |xargs grep "X-PHP-Originating-Script";
done |cut -d ":" -f 4 |sort -u
Share Button
(Visited 110 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.