Полезные команды Postfix. Работа с очередью Postfix

Полезные команды Postfix. Работа с очередью Postfix Проверка синтаксиса конфигурационных файлов Postfix

# postfix check

Просмотр текущих значений параметров Postfix

# postconf

Просмотр стандартных значений параметров Postfix(значений по умолчанию)

# postconf -d

 

# postconf | grep message_size_limit
	
message_size_limit = 10240000

Изменение значения параметра message_size_limit без перезагрузки (работает и после перезагрузки postfix)

# postconf -e 'message_size_limit = 20480000'

# postconf | grep message_size_limit

message_size_limit = 20480000

# /etc/init.d/postfix restart

Shutting down postfix:                                     [ OK ]
Starting postfix:                                         [ OK ]

# postconf | grep message_size_limit

message_size_limit = 20480000

То же самое можно достичь прописав в /etc/postfix/main.cf

	
# message_size_limit = 20480000

Больше

	
# man 5 postconf

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

# mailq | less

# postqueue -p | less

Просмотр кол-ва сообщений в очереди

# mailq | grep Request
	
-- 25913 Kbytes in 1809 Requests.

Альтернативный вариант — посчитать файлы в соответствующем каталоге:

	
# 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

Отправка всех сообщений, находящихся в очереди

	
# postqueue -f

# mailq -q
	
# postsuper -r ALL

Отправка сообщения с конкретным идентификатором

# postqueue -i 

# postsuper -r 

Отправка всех сообщений для конкретного домена

# postqueue -s domain.com

Подсчет кол-ва писем в очереди для/от конкретного адресата

	
# mailq | grep bob@domain.com | wc –l

Просмотр активных отправителей

# mailq|grep ^[A-F0-9] |cut -c 42-80| sort | uniq -c| sort -n
	
1   MAILER-DAEMON
1   user1@yahoo.com
33   admin@example.com
1770   no-reply@domain.com

Сортировка почты по домену отправителя

# mailq | egrep '\w{2,3}.*\d*:\d*.*@.*\..*' --color|awk '{print $7}'|cut -d@ -f2|sort|uniq –c

из списка почтовой очереди mailq берем первый попавшийся номер письма от нужного нам домена,с которого идет рассылка большого кол-ва сообщений и определяем имя пользователя, с которого идет рассылка

# postcat -vq BA84A294E693 | less

Просмотреть параметры сообщения и причины проблем с отправкой для заданного идентификатора сообщения в очереди:

# postcat -q BA84A294E693 | less

Аналогично,но более подробно

# postcat -vq BA84A294E693 | less

Очистка почтовой очереди(удаление всех писем с очереди)

# postsuper -d ALL

Очистка почтовой очереди типа deferred

# postsuper -d deferred

Удаление письма с конкретным идентификатором

	
# postsuper -d ID, где ID – идентификатор письма

Удаление писем из очереди в зависимотси от ошибки

# postqueue -p | grep -B1 'rejected: Domain not found' | grep -vE '(--|reject)' | awk '{print $1}' | postsuper -d -

# postqueue -p | grep -B1 'Host not found' | grep -vE '(--|\()' | awk '{print $1}' | postsuper -d -

# postqueue -p | grep -B1 'rejected: User unknown in local recipient table' | grep -vE '(--|\()' | awk '{print $1}' | postsuper -d -
	
# postqueue -p | grep -B1 'Could not complete sender verify callout' | grep -vE '(--|\()' | awk '{print $1}' | postsuper -d -

Ключик

	
-d

в конце скрипта, можно заменить на

	
-h

, если хотите сделать массовое удержание или ключик

	
-r

, если хотите протолкнуть письма в очереди. Все зависит от поставленных задач. Удаление с очереди писем, отправленных с конкретного адреса

	
# mailq | grep MAILER-DAEMON | awk '{print $1}' | cut -d\* -f 1 | xargs -n 1 postsuper  -d

# mailq | grep bob@domain.com | awk '{print $1}' | xargs -n1 postsuper –d

# postqueue -p | grep 'MAILER-DAEMON' | awk '{print $1}' | postsuper -d -

Удаление почты для конкретного получателя/отправителя(получатель-поле 8 или отправитель- поле 7)

# mailq | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($8 == "user@example.com" && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d -

Постановка письма на «удержание» (перевод в режим hold – postfix не будет пытаться отправить письмо получателю в таком режиме)

# postsuper -h 

# postsuper -h ALL

– все сообщения перевести в режим hold

	
# postsuper -h deferred

– все письма с очереди deferred перевести в режим hold Снятие письма с режима «удержание»

# postsuper -H 
	
# postsuper -H ALL

– все сообщения перевести с режима hold в режим deferred Просмотр списка писем в очереди по доменам получателя Очередь Active

# qshape
	
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 0 0 0 0 0 0   0   0   0   0     0

Очередь deferred

# qshape deferred

T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 1803 0 0 0 0 0   0   1   0 307 1495
aol.com 343 0 0 0 0 0   0   0   0   50   293
ovi.com 144 0 0 0 0 0   0   0   0   26   118
facebook.com 122 0 0 0 0 0   0   0   0   17   105
yahoo.co   42 0 0 0 0 0   0   0  0   7   35
……………………………………………………………….

Срок хранения bounce в очереди 1 сутки (максимальное время письма в очереди после которого письмо cчитается недоставленным)( default: 5d)

bounce_queue_lifetime = 3d

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

maximal_queue_lifetime = 3d

Минимальный интервал повторной отправки сообщений в очереди (минимальное время между попытками доставить письмо) (default: 300s)

minimal_backoff_time = 180s

Максимальный интервал повторной отправки сообщений в очереди (максимальное время между попытками доставить письмо в статусе deferred) (default: 4000s)

maximal_backoff_time = 6h

Период запуска менеджера очереди

queue_run_delay

Источник: http://otakoyi.com/blog/ru/postfix-podschet-kolichestva-soobscheniy-v-oc... https://poiskvps.ru/viewtopic.php?f=6&t=348 https://rtcamp.com/tutorials/mail/postfix-queue/