Удалить письма из очереди Postfix


Часто бывает так, что нам нужно удалить некоторые письма из очереди (чаще из deferred  или hold). Некоторые заметки по этому поводу:

Удалить письма из всех очередей для адресата you@example.com:

# mailq | tail -n +2 | grep -v "^ *(" | awk  'BEGIN { RS = "" } { if ($8 == "you@example.com" && $9 == "") print $1 }' | tr -d "*!" | postsuper -d -

Скрипт для частого применения:

#!/bin/sh

email=$1

if [ "$email" = "" ]; then
echo "Usage: $0 [email]"
echo "For delete all e-mails to [email] from any queue"
exit 1
fi

# $7=sender, $8=recipient1, $9=recipient2

mailq | tail -n +2 | grep -v "^ *(" | awk 'BEGIN { RS = "" } { if ($8 == "'"$email"'" && $9 == "") print $1 }' | tr -d "*!" | postsuper -d -

Удалить все письма из очереди deferred:

# postsuper -d ALL deferred

Дополнительный материал: # man postsuper

Оставьте комментарий

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