Важные и полезные команды EXIM

среда, 30 ноября 2011 г.

Проблема началась с того, что сервер через раз стал отправлять письма с помощью стандартной php функции mail().  Стал смотреть что не так с почтовиком exim4. И оказалось что у него очередь скопилась в 450 сообщений, среди которых были и нормальные. Все сообщения были помечены как frozen. Немного полезных команд для exim:
Узнать кол-во сообщений в очереди:
exim -bpc

Вывести список очереди:
exim -bp


"Передернуть" очередь принудительно, чтобы не ждать когда exim по какому-то своему таймеру это сделает:
exim -qff

Посмотреть содержимое конкретного письма по его id (id увидите, когда выведите список exim -bp):
exim -Mvb 1RVlKG-0001sS-pA

Собственно с помощью последней команды как раз сможете узнать что такого там произошло и почему это сообщение зависло в очереди.
У меня очередь забилась из-за того,что cron выполнялся с ошибками и были отправить попытки сообщений на ящики пользователей, которых физически нигде не заведено. Например, тот же www-data, который создается, если сервер управляется панелью ISPManager.

Самое интересное - удалить все frozen сообщения для конкретного пользователя:
exiqgrep -r user@domain -zi | xargs exim -Mrm

Помогает нам тут утилита exiqgrep.

upd.
А вот как можно удалить всю очередь frozen-писем:
exim -bp | exiqgrep -i | xargs exim -Mrm

Я крайне рекомендую ознакомиться детально с информацией, перейдя по ссылкам:
http://www.opennet.ru/base/net/exim_options.txt.html
http://vds-admin.ru/mail/poleznye-komandy-pochtovogo-servera-exim-shpargalka
http://admin-dm.livejournal.com/78066.html

Copyright © 2010 WEB IT blog