Проверка синтаксиса конфигурационных файлов Postfix
1 |
# postfix check |
Просмотр текущих значений параметров Postfix
1 |
# postconf |
Просмотр стандартных значений параметров Postfix(значений по умолчанию)
1 |
# postconf -d |
1 |
# postconf | grep message_size_limit |
1 |
message_size_limit = 10240000 |
Изменение значения параметра message_size_limit без перезагрузки
(работает и после перезагрузки postfix)
1 |
# postconf -e 'message_size_limit = 20480000' |
1 |
# postconf | grep message_size_limit |
1 |
message_size_limit = 20480000 |
1 |
# /etc/init.d/postfix restart |
1 2 |
Shutting down postfix: [ OK ] Starting postfix: [ OK ] |
1 |
# postconf | grep message_size_limit |
1 |
message_size_limit = 20480000 |
То же самое можно достичь прописав в
1 |
/etc/postfix/main.cf |
1 |
# message_size_limit = 20480000 |
Больше
1 |
# man 5 postconf |
Работа с очередью
Просмотр очереди сообщений
1 |
# mailq | less |
1 |
# postqueue -p | less |
Просмотр кол-ва сообщений в очереди
1 |
# mailq | grep Request |
1 |
-- 25913 Kbytes in 1809 Requests. |
Альтернативный вариант — посчитать файлы в соответствующем каталоге:
1 |
# find /var/spool/postfix/deferred -type f | wc -l |
1 |
# find /var/spool/postfix/active -type f | wc -l |
1 |
# find /var/spool/postfix/incoming -type f | wc –l |
Отправка всех сообщений, находящихся в очереди
1 |
# postqueue -f |
1 |
# mailq -q |
1 |
# postsuper -r ALL |
Отправка сообщения с конкретным идентификатором
1 |
# postqueue -i <ID-сообщения> |
1 |
# postsuper -r <ID-сообщения> |
Отправка всех сообщений для конкретного домена
1 |
# postqueue -s domain.com |
Подсчет кол-ва писем в очереди для/от конкретного адресата
1 |
# mailq | grep bob@domain.com | wc –l |
Просмотр активных отправителей
1 |
# mailq|grep ^[A-F0-9] |cut -c 42-80| sort | uniq -c| sort -n |
1 2 3 4 |
1 MAILER-DAEMON 1 user1@yahoo.com 33 admin@example.com 1770 no-reply@domain.com |
Сортировка почты по домену отправителя
1 |
# mailq | egrep '\w{2,3}.*\d*:\d*.*@.*\..*' --color|awk '{print $7}'|cut -d@ -f2|sort|uniq –c |
из списка почтовой очереди mailq берем первый попавшийся номер письма от нужного нам домена,с которого идет рассылка большого кол-ва сообщений и определяем имя пользователя, с которого идет рассылка
1 |
# postcat -vq BA84A294E693 | less |
Просмотреть параметры сообщения и причины проблем с отправкой для заданного
идентификатора сообщения в очереди:
1 |
# postcat -q BA84A294E693 | less |
Аналогично,но более подробно
1 |
# postcat -vq BA84A294E693 | less |
Очистка почтовой очереди(удаление всех писем с очереди)
1 |
# postsuper -d ALL |
Очистка почтовой очереди типа deferred
1 |
# postsuper -d deferred |
Удаление письма с конкретным идентификатором
1 |
# postsuper -d ID, где ID – идентификатор письма |
Удаление писем из очереди в зависимотси от ошибки
1 |
# postqueue -p | grep -B1 'rejected: Domain not found' | grep -vE '(--|reject)' | awk '{print $1}' | postsuper -d - |
1 |
# postqueue -p | grep -B1 'Host not found' | grep -vE '(--|\()' | awk '{print $1}' | postsuper -d - |
1 |
# postqueue -p | grep -B1 'rejected: User unknown in local recipient table' | grep -vE '(--|\()' | awk '{print $1}' | postsuper -d - |
1 |
# postqueue -p | grep -B1 'Could not complete sender verify callout' | grep -vE '(--|\()' | awk '{print $1}' | postsuper -d - |
Ключик
1 |
-d |
в конце скрипта, можно заменить на
1 |
-h |
, если хотите сделать массовое удержание или ключик
1 |
-r |
, если хотите протолкнуть письма в очереди. Все зависит от поставленных задач.
Удаление с очереди писем, отправленных с конкретного адреса
1 |
# mailq | grep MAILER-DAEMON | awk '{print $1}' | cut -d\* -f 1 | xargs -n 1 postsuper -d |
1 |
# mailq | grep bob@domain.com | awk '{print $1}' | xargs -n1 postsuper –d |
1 |
# postqueue -p | grep 'MAILER-DAEMON' | awk '{print $1}' | postsuper -d - |
Удаление почты для конкретного получателя/отправителя(получатель-поле 8 или отправитель- поле 7)
1 |
# mailq | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($8 == "user@example.com" && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d - |
Постановка письма на «удержание» (перевод в режим hold – postfix не будет пытаться отправить письмо получателю в таком режиме)
1 |
# postsuper -h <ID-сообщения> |
1 |
# postsuper -h ALL |
– все сообщения перевести в режим hold
1 |
# postsuper -h deferred |
– все письма с очереди deferred перевести в режим hold
Снятие письма с режима «удержание»
1 |
# postsuper -H <ID-сообщения> |
1 |
# postsuper -H ALL |
– все сообщения перевести с режима hold в режим deferred
Просмотр списка писем в очереди по доменам получателя
Очередь Active
1 |
# qshape |
1 2 |
T 5 10 20 40 80 160 320 640 1280 1280+ TOTAL 0 0 0 0 0 0 0 0 0 0 0 |
Очередь deferred
1 |
# qshape deferred |
1 2 3 4 5 6 7 |
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)
1 |
bounce_queue_lifetime = 3d |
Пробовать доставить обычные сообщения в течении трех дней
(максимальное время нахождения письма в очереди, после которого отправителю будет отправлен отчет о недоставке) (default: 5d)
1 |
maximal_queue_lifetime = 3d |
Минимальный интервал повторной отправки сообщений в очереди
(минимальное время между попытками доставить письмо) (default: 300s)
1 |
minimal_backoff_time = 180s |
Максимальный интервал повторной отправки сообщений в очереди
(максимальное время между попытками доставить письмо в статусе deferred)
(default: 4000s)
1 |
maximal_backoff_time = 6h |
Период запуска менеджера очереди
1 |
queue_run_delay |
(default: 300s)
Источник:
http://otakoyi.com/blog/ru/postfix-podschet-kolichestva-soobscheniy-v-ocheredi/
https://poiskvps.ru/viewtopic.php?f=6&t=348
https://rtcamp.com/tutorials/mail/postfix-queue/