→ Полезные команды 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 <ID-сообщения>

# postsuper -r <ID-сообщения>


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

# 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-DAEMON1 user1@yahoo.com33 admin@example.com1770 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 <ID-сообщения>

# postsuper -h ALL

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

# postsuper -h deferred

– все письма с очереди deferred перевести в режим hold

Снятие письма с режима «удержание»

# postsuper -H <ID-сообщения>

# 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 1495aol.com 343 0 0 0 0 0 0 0 0 50 293ovi.com 144 0 0 0 0 0 0 0 0 26 118facebook.com 122 0 0 0 0 0 0 0 0 17 105yahoo.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

(default: 300s)
[add-favorites]

Обращение в студию

Спасибо за ваше обращение!
Мы скоро свяжемся с вами :)