Postfix обрабатывает все очереди в каталоге, который определен в параметре queue_directory файла main.cf. Обычно очереди хранятся в каталоге /var/spool/postfix. Каждая очередь имеет свой собственный подкаталог, имя которого идентифицирует очередь. Все обрабатываемые Postfix сообщения находятся в этих каталогах до тех пор, пока Postfix не доставит их. Очередь определяет статус сообщения: incoming, mail drop, deferred, active, hold или corrupt.
incomingВсе новые сообщения, попадающие в систему очередей Postfix, отправляются сервисом cleanup в очередь incoming. Новые файлы очередей создаются от имени пользователя postfix с правами доступа 0600. Как только файл очереди готов к дальнейшей обработке, сервис cleanup изменяет права на 0700 и уведомляет диспетчер очередей о том, что поступила новая почта. Диспетчер очередей игнорирует незавершенные файлы очереди с правами 0600. Диспетчер очередей просматривает очередь incoming, перемещая новые сообщения в очередь active, и следит за тем, чтобы не превысить ее предельный размер. По умолчанию очередь active может со
держать не более 20 000 сообщений.
Предупреждение
Когда предельное количество сообщений в очереди active достигнуто, диспетчер очередей прекращает просмотр очередей incoming и deferred.
maildropПереданные командой sendmail сообщения, которые не были отправлены в первичные очереди Postfix сервисом pickup, ожидают обработки в очереди maildrop. Вы можете добавлять сообщения в очередь maildrop даже тогда, когда Postfix не запущен; он обратится к ним, как только будет запущен.
Однопоточный сервис pickup просматривает и забирает сообщения из очереди maildrop периодически, а также по уведомлению от программы postdrop. Программа postdrop – это setgid помощник, который позволяет непривилегированной программе sendmail ставить сообщения в очередь maildrop и уведомлять службу pickup о поступлении сообщения (все сообщения, попадающие в основные очереди Postfix, делают это посредством службы cleanup).
deferredЕсли каким то из адресатов сообщения все еще не удается доставить его по какой либо временной причине и всем тем получателям, для которых это возможно, сообщение уже доставлено, Postfix помещает такое сообщение в очередь deferred.
Диспетчер очередей периодически просматривает очередь deferred, чтобы перемещать отложенные сообщения обратно в очередь active. Интервал между просмотрами определяется параметром конфигурации queue_run_delay. Если оказывается, что просмотры очередей deferred и incoming должны состояться одновременно, то диспетчер очередей обращается к ним попеременно: по сообщению из каждой очереди.
activeОчередь active в некотором роде является аналогом очереди запуска процессов операционной системы. Сообщения в очереди active готовы к отправке, но не обязательно находятся в процессе отправки. Диспетчер очередей – это планировщик агентов доставки, который обеспечивает быструю и четкую доставку почты всем адресатам в пределах выделенных ресурсов.
Примечание
Большая часть администраторов Postfix воспринимает очередь active как каталог на диске; на самом же деле очередь active – это набор структур данных в памяти диспетчера очередей.
holdАдминистратор может определить политики smtpd access(5) и проверки тела и заголовков с помощью cleanup (см. главу 10), которые могут привести к тому, что сообщения будут автоматически исключены из нормальной обработки и помещены на неопределенное время в очередь hold. Сообщения остаются в очереди hold до тех пор, пока не вмешается администратор. Периодические попытки отсылки сообщений из очереди hold не предпринимаются. Используя команду postsuper, вы можете вручную поместить сообщения в очередь hold или вернуть их оттуда, переместив в очередь deferred.
Теоретически сообщения могут оставаться в очереди hold более долгий срок, чем указано параметром maximal_queue_lifetime для времени жизни файла очереди (после чего недоставленные сообщения возвращаются обратно отправителю). Если необходимо вернуть из очереди hold более старые сообщения, то можно использовать команду postsuper r для перемещения их в очередь maildrop. В этом случае сообщение получит новую временную метку и еще один шанс быть доставленным.
Примечание
Очередь hold не оказывает значительного влияния на производительность Postfix. Внимание к ней вызвано скорее отслеживанием спама и вредоносных программ, чем вопросами производительности.
corruptКаталог corrupt содержит поврежденные файлы очередей. Вместо того чтобы удалять их, Postfix сохраняет их для того, чтобы человек – администратор почтовой системы – мог исследовать их с помощью postcat.
При запуске Postfix записывает в журнал предупреждение о каждом поврежденном файле.