Работа с очередью сообщений в Postfix

Автор George, Нояб. 14, 2023, 01:10

« назад - далее »

George

Посмотреть очередь

Код: bash
mailq

или:

Код: bash
postqueue -p
Принудительно запустить отправку из очереди

Код: bash
mailq -q

или:
Код: bash
postqueue -f
Очистить очередь

1. Удалить все сообщения:

Код: bash
postsuper -d ALL

2. Удалить определенное письмо из очереди:

postsuper -d <идентификатор письма>

* идентификатор письма можно увидеть командой mailq.

3. Очистить очередь по отправителю:

Код: bash
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } /spammer@email\.com/ { print $1 }' | tr -d '*!' | postsuper -d -

* в данном примере мы удалим все письма от spammer@email.com.
Количество писем в очереди

Команда mailq в конце выдает общее количество сообщений в очереди, например:

-- 23 Kbytes in 18 Requests.

* в данном примере в очереди находится 18 сообщений общим объемом 23 Кбайт.

Также, очередь можно посмотреть командами:

Код: bash
find /var/spool/postfix/deferred -type f | wc -l

Код: bash
find /var/spool/postfix/active -type f | wc -l

Код: bash
find /var/spool/postfix/incoming -type f | wc -l

Код: bash
find /var/spool/postfix/defer -type f | wc -l

* данные каталоги являются местом, где временно хранятся письма очереди.
Перезапустить очередь

Код: bash
postsuper -r ALL

Если не помогло, поочередно:

Код: bash
postfix stop

Код: bash
postsuper -r ALL

Код: bash
postfix start
Настройка очереди

Задать периодичность повторной отправки сообщений:

Код: bash
postconf -e "queue_run_delay = 5m"

Задать время, на которое будет отложена отправка сообщений, которые не были отправлены по причине временных неисправностей (например, принимающий сервер не отвечает или просит повторить запрос позже):

Код: bash
postconf -e "minimal_backoff_time = 10m"

Задать максимальное время для отправки сообщений, которые не были отправлены по причине временных неисправностей:

Код: bash
postconf -e "maximal_backoff_time = 15m"

Выставить время жизни для сообщения в очереди:

Код: bash
postconf -e "maximal_queue_lifetime = 1d"

После внесения изменений необходимо перезапустить postfix:

Код: bash
service postfix restart || systemctl restart postfix
Информация о конкретном сообщении

postcat -q <идентификатор>


* показывает параметры сообщения и причину, по которой письмо еще не отправлено.
  •  

🡱 🡳

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.