У меня есть резервный почтовый сервер на случай выхода из строя основного. В этом случае письма приходят на резервный сервер и остаются там, пока не вернется основной.
Если я подожду несколько раз, доставка будет выполнена автоматически, как только основной сервер вернется, но это может быть долгим. Итак, как заставить повторить попытку отправки всех писем?
Например: postqueue -p: дать мне список писем
Затем я попробовал postqueue -f (со страницы руководства: Очистить очередь: попытаться доставить всю почту из очереди). Очередь, конечно, очистилась, но письма не были доставлены ...
В соответствии с посточередь (1) ты можешь просто бежать postqueue -f
чтобы очистить очередь почты. Если сообщения не доставляются после очистки очереди, а вместо этого отправляются в очередь, вы можете проверить свои журналы электронной почты на наличие ошибок.
Взглянув на постсупер (1) также может быть полезно. Возможно, сообщения приостановлены и их нужно сначала выпустить.
postqueue -f
должно сработать. Если нет, значит, для этого есть веская причина. Проверить журналы. Также pfqueue - очень полезная команда для проверки спула почты.
sendmail -q
немедленно повторяет доставку всех писем в очереди.
postqueue -s domain.tld
должен заставить машину ретрансляции резервных копий сбросить всю электронную почту для вашего сайта. Настройка по умолчанию для постфикса включает очистку для каждого сайта для всех доменов в relay_domains
. postqueue -f
будет делать то же самое, но также будет отправлять почту на внешние сайты, то есть делает больше, чем вам нужно.
Как вы определяете, что почта не была доставлена? Они все еще находятся на резервном хосте или были отправлены на главный хост, а затем потерялись?
Я обычно использую эту команду
postsuper -r ALL && postqueue -f
Параметр:
-r ВСЕ запрашивать все сообщения
-f - очистить очередь: попытаться доставить всю почту в очереди.