У нас в очереди сообщений много писем с определенного адреса. Я хочу удалить многие из них. Я нашел способы удаления по строке темы, но я хочу искать по адресу «От», а это кажется намного сложнее. (Примечание: в основном это исходящие сообщения.)
Некоторые пользователи Google нашли мне эту команду на HowToForge, но нет объяснения того, что он делает.
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
Я пытался использовать mailqueuemng, но не очень далеко (во-первых, у него нет --help).
Конвейер можно анализировать шаг за шагом, чтобы увидеть, что он делает. Попробуйте запускать каждую команду по порядку, пока не поймете их все:
postqueue -p
распечатать очередь
postqueue -p | tail -n +2
избавься от первых парочек строк
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }'
искать любые строки со spammer@example.net; напечатайте первое поле этих строк.
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!'
избавиться от любого *!
Это выведет кучу идентификаторов очередей.
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
Последняя команда говорит postfix удалить эти идентификаторы очереди.
Прочтите страницы The Fine Man на postqueue
, tail
, tr
, и postsuper
. Awk - более сложный язык, это отдельный маленький язык. вам понадобится немного больше, чем справочная страница, чтобы понять ее сложность, хотя, по моему опыту, 99% использования awk очень похоже на этот конкретный однострочник.
Извините, что добавляю ответ на уже отвеченный вопрос.
Это для людей, которым приходится делать это ежедневно (клиенты, сталкивающиеся с рассылкой спама).
Есть парень, который написал pymailq, инструмент, который может помочь с этим.
Я также раздвоил этот инструмент и добавил совместимость с zimbra и несколько дополнительных функций.
Вот исходное репо
Вот моя вилка
Установка проходит так:
git clone https://github.com/moebiuseye/pymailq.git
cd pymailq
git checkout dev
virtualenv venv
source venv/bin/activate
python ./setup.py install
pqshell