Назад | Перейти на главную страницу

Как я могу удалить все сообщения с определенного адреса из почтовой очереди?

У нас в очереди сообщений много писем с определенного адреса. Я хочу удалить многие из них. Я нашел способы удаления по строке темы, но я хочу искать по адресу «От», а это кажется намного сложнее. (Примечание: в основном это исходящие сообщения.)

Некоторые пользователи 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