Полезные команды Postfix для работы с письмами

21.01.2018 11:52
Поделиться:
Полезные команды 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

Срок хранения 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)

Мы используем файлы cookie. Продолжив использование сайта, Вы соглашаетесь с политикой использования файлов cookie, обработки персональных данных и конфиденциальности. Подробнее