Postfix. Работа с очередью сообщений — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Новая страница: «Посмотреть очередь mailq или: postqueue -p Принудительно запустить отправку из очереди mailq -q и…»)
 
Строка 1: Строка 1:
 
Посмотреть очередь
 
Посмотреть очередь
mailq
+
mailq
 
 
 
или:
 
или:
 +
postqueue -p
  
postqueue -p
 
  
 
Принудительно запустить отправку из очереди
 
Принудительно запустить отправку из очереди
mailq -q
+
mailq -q
 
 
 
или:  
 
или:  
 
+
postqueue -f
postqueue -f
 
  
 
Очистить очередь
 
Очистить очередь
 
1. Удалить все сообщения:
 
1. Удалить все сообщения:
 
+
postsuper -d ALL
postsuper -d ALL
 
  
 
2. Удалить определенное письмо из очереди:
 
2. Удалить определенное письмо из очереди:

Версия 00:13, 7 апреля 2023

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

mailq

или:

postqueue -p


Принудительно запустить отправку из очереди

mailq -q

или:

postqueue -f

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

postsuper -d ALL

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

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

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

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

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 Кбайт.

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

find /var/spool/postfix/deferred -type f | wc -l

find /var/spool/postfix/active -type f | wc -l

find /var/spool/postfix/incoming -type f | wc -l

find /var/spool/postfix/defer -type f | wc -l

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

Перезапустить очередь postsuper -r ALL

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

postfix stop

postsuper -r ALL

postfix start

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

postconf -e "queue_run_delay = 5m"

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

postconf -e "minimal_backoff_time = 10m"

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

postconf -e "maximal_backoff_time = 15m"

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

postconf -e "maximal_queue_lifetime = 1d"

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

service postfix restart || systemctl restart postfix

Информация о конкретном сообщении postcat -q <идентификатор>

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