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