У меня есть частный VPS с ретрансляцией postfix, который используется клиентами, которые установили свои собственные почтовые серверы в своих офисах и размещены через свое ADSL-соединение. В интересах надежной доставки электронной почты действительно не рекомендуется отправлять почту напрямую с IP-адресов интернет-провайдеров, поэтому я предлагаю им возможность использовать наш частный ретранслятор. Однако один из этих клиентов решил разослать информационный бюллетень 5 000 получателей. Я сразу это поймал и все бросил в очередь ожидания.
Но теперь я бы хотел попробовать очищать эту очередь партиями, начиная с самых старых сообщений.
У кого-нибудь есть идеи, как это сделать?
Похоже, что это был бы монстр сценария оболочки, который мог бы использовать grep через вывод postqueue -p
Если у вас есть представление о том, сколько лет самому старому сообщению, вы можете сделать это с помощью некоторой магии grep и awk. То есть, если самое раннее сообщение пришло 13 июля, вы можете сделать следующее:
postqueue -p |grep "Fri Jul 13"|head -5000 | awk '{print "postsuper -I", $1}'|sh
взять первые 5000 найденных сообщений на эту дату. При этом не выполняется сортировка, в какое время в этот день было отправлено письмо. Если вы хотите, вы можете просто добавить час для каждого часа.