- Удалить/Очистить/Сбросить очередь в postfix
- Просмотр сообщения (Содержимое, заголовок и тело)
- Удалить/Очистить/Сбросить очередь в postfix
- сисадминские заметки
- среда, 3 октября 2012 г.
- Удаление писем из очереди postfix
- Работа с очередью сообщений в Postfix
- Посмотреть очередь
- Принудительно запустить отправку из очереди
- Очистить очередь
- Количество писем в очереди
- Перезапустить очередь
- Настройка очереди
- Информация о конкретном сообщении
- linux-notes.org
- Просмотр сообщения (Содержимое, заголовок и тело)
- Удалить/Очистить/Сбросить очередь в postfix
- Управление очередью сообщений в Postfix
- Просмотр и отправка сообщений
- Удаление сообщений
- Microsoft Exchange Server 2016 Cumulative Update 15
- Отправка письма из Powershell
- Microsoft Exchange Server 2016 Cumulative Update 20
- 11 thoughts on “ Управление очередью сообщений в Postfix ”
Удалить/Очистить/Сбросить очередь в postfix
Удалить/Очистить/Сбросить очередь в postfix
Иногда, приходиться удалять письма из очереди, и если не знаете как это сделать ( или может забыли), то данная тема поможет с этим разобраться.
Для начала, проверим что иметься в очереди:
У меня например, образовалось вот такая очередь:
Или, имеется другая утилита:
Чтобы сохранить результат в текстовый файл, можно запустить:
Просмотр сообщения (Содержимое, заголовок и тело)
Предположим, что сообщение имеет идентификатор XXXXXXX (я выше показывал как )
Или, сохраняем в файл:
Удалить/Очистить/Сбросить очередь в postfix
Если есть необходимость удалить конкретное письмо ( нужно знать его ID), выполните команду:
Чтобы очистить очередь в Postfix MTA просто введите следующую команду:
Чтобы удалить всю почту из очереди, введите:
Чтобы удалить все письма в отложенной очереди (deferred), введите:
Чтобы удалить все письма из почтовой очереди, которые пришли с test_user@ bloglinux.ru или отправлены на адрес test_user@ bloglinux.ru (команда одинакова независимо от того, является ли это адресом отправителя или получателя), вы можете использовать следующую команду:
Ничего сложного в этом нет.
Нашел в интернете, готовый скрипт, который удаляет всю почту из mailq, которая соответствует регулярному выражению (указанному в качестве первого аргумента).
И прописываем в него:
Например, удалите все поставленные в очередь сообщения (исходящие и входящие) для https:// bloglinux.ru :
Удалите все сообщения в очереди, содержащие слово «world»:
У меня, по данной статье «Удалить/Очистить/Сбросить очередь в postfix» все.
Источник
сисадминские заметки
среда, 3 октября 2012 г.
Удаление писем из очереди postfix
]# mailq
-Queue ID- —Size— —-Arrival Time—- -Sender/Recipient——-
BD65F10DEE4* 4089 Wed Oct 3 00:29:01 sender@domain.ru
resipient@domain.ru
C7D0E10DEE9 4457 Wed Oct 3 00:30:15 sender@domain.ru
(host imx1.rambler.ru[81.19.66.234] said: 452 4.7.1 Try again later (in reply to DATA command))
recipient@rambler.ru
Как можно заметить в выводе команды две или три строки описывают одно письмо, поля вывода:
- Идентификатор сообщения в очереди, если после идентификатора стоит знак «*» — письмо находится в активной очереди на доставку, если знак «!» — письмо находится в очереди ожидания и попыток доставки его производится не будет.
- Размер сообщения.
- Время принятия письма.
- Отправитель сообщения.
- В выводе команды может быть указана причина по которой письмо не отправлено и осталось в очереди на доставку.
- Получатель сообщения.
Удалить письмо можно командой:
]# postsuper -d идентификатор_сообщения
Таким образом, посмотрев вывод mailq можно найти требуемое письмо по отправителю, получателю или по сообщению о не возможности доставки в данный момент (в примере rambler.ru просит нас отправить письмо позже). Все как бы хорошо, но что делать если в организации периодически производят рассылки и писем сотни или даже тысячи? Достаточно просто сделать выборку по отправителю, т.к. отправитель и нужный нам идентификатор находятся в одной строке.
]# mailq | grep «sender» | awk ‘< print $1 >‘ | sed s/*// | postsuper -d —
А если нужно сделать выборку по получателю или сообщению о не возможности доставки? Какого то готового рецепта я не нашел в интернете, хотя нужно было очень срочно. Итак, нужно все данные по каждому письму объединить в одну строку. Привожу ниже то что получилось у меня:
]# mailq | grep -v «Queue ID» | while read line; do if [ «1» != `echo $line | wc -m` ]; then echo -n » «$line; else echo»»; fi ; done | grep » sender or non delivery message » | awk ‘< print $1 >‘ | postsuper -d —
Используя свои данные вместо тех что указаны в примере » sender or non delivery message » можно легко очистить очередь от ненужных писем.
Источник
Работа с очередью сообщений в Postfix
Посмотреть очередь
Принудительно запустить отправку из очереди
Очистить очередь
1. Удалить все сообщения:
postsuper -d ALL
2. Удалить определенное письмо из очереди:
* идентификатор письма можно увидеть командой 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
Если не помогло, поочередно:
postsuper -r ALL
Настройка очереди
Задать периодичность повторной отправки сообщений:
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
Информация о конкретном сообщении
* показывает параметры сообщения и причину, по которой письмо еще не отправлено.
Источник
linux-notes.org
Иногда, приходиться удалять письма из очереди, и если не знаете как это сделать ( или может забыли), то данная тема поможет с этим разобраться.
Для начала, проверим что иметься в очереди:
У меня например, образовалось вот такая очередь:
Или, имеется другая утилита:
Чтобы сохранить результат в текстовый файл, можно запустить:
Просмотр сообщения (Содержимое, заголовок и тело)
Предположим, что сообщение имеет идентификатор XXXXXXX (я выше показывал как )
Или, сохраняем в файл:
Удалить/Очистить/Сбросить очередь в postfix
Если есть необходимость удалить конкретное письмо ( нужно знать его ID), выполните команду:
Чтобы очистить очередь в Postfix MTA просто введите следующую команду:
Чтобы удалить всю почту из очереди, введите:
Чтобы удалить все письма в отложенной очереди (deferred), введите:
Чтобы удалить все письма из почтовой очереди, которые пришли с test_user@linux-notes.org или отправлены на адрес test_user@linux-notes.org (команда одинакова независимо от того, является ли это адресом отправителя или получателя), вы можете использовать следующую команду:
Ничего сложного в этом нет.
Нашел в интернете, готовый скрипт, который удаляет всю почту из mailq, которая соответствует регулярному выражению (указанному в качестве первого аргумента).
И прописываем в него:
Например, удалите все поставленные в очередь сообщения (исходящие и входящие) для http://linux-notes.org:
Удалите все сообщения в очереди, содержащие слово «world»:
У меня, по данной статье «Удалить/Очистить/Сбросить очередь в postfix» все.
Источник
Управление очередью сообщений в Postfix
Доброго дня дорогие читатели. Использую в своей работе почтовые сервера на postfix. Приведу тут пожалуй самые часто используемые команды. Управление очередью сообщений Postfix нужны как говорится на каждый день. Итак приступим.
Просмотр и отправка сообщений
Вывести список писем в очереди
или второй вариант
Список сообщений выводится в формате таблицы. Слева направо: уникальный код сообщения, размер сообщения, дата и время постановки сообщения в очередь. На следующей строке адрес сервера получателя и состояние отправки. Последней строчкой идет адрес получателя.
Команда mailq выводит все сообщения в очереди полным списком. По окончании вывода внизу указывается строка с объемом всех сообщений в очереди и их количеством. В примере ниже видно, что в очереди находится 52 сообщения общим объемом 26834 Кбайт.
Для быстрой проверки количества сообщений в очереди можно использовать grep
И на выходе получим одну строчку с количеством сообщений в очереди и их объемом.
Вывести всю информацию по сообщению в очереди
— уникальный код сообщения, который можно увидеть если ввести команду mailq. Данная команда позволяет более детально разобраться почему еще не отправлено указанное сообщение.
Принудительная отправка всех сообщений в очереди
После этой команды будет предпринята повторная попытка отправить все сообщения в очереди.
Принудительная отправка сообщения в очереди с указанным идентификатором
Перезапуск очереди для повторной обработки сообщений
Принудительная отправка сообщений в очереди относящихся к определенному домену
Установка периодичности повторной отправки сообщений
где 20m — количество минут.
Установка времени приостановки отправки сообщений
Сообщения не отправленные по причине временных неисправностей. Например принимающий сервер не отвечает или просит повторить запрос позже и т.п. Такое поведение также применяет для фильтрации СПАМа greylist
где minimal_backoff_time — минимальное время
maximal_backoff_time — максимальное время
Установить время до удаления сообщения из очереди
Это время в течении которого postfix будет пытаться отправить сообщение. После окончания указанного периода сообщение будет безвозвратно удалено. В примере указано 2d — тоесть два дня
После изменения в конфигурации Postfix не забываем перезагружать сервис для применения настроек
Удаление сообщений
Удалить письмо из очереди
Удалить письмо из очереди можно по его идентификатору, его можно узнать используя команду mailq. Подробнее можно прочитать выше.
Удалить все сообщения
Удалить все сообщения по определенному отправителю
где spamer.ru — домен по которому будет произведено удаление. Если необходимо удалить письма с конкретного адреса, то вместо домена указываем точный адрес. Например: spam@spamer.ru
И напоследок, список директорий где Postfix хранит сообщения в очереди пока их не отправит, либо не удалит.
Управление очередью сообщений Postfix можно автоматизировать. В дальнейшем рассмотрим скрипты на данную тему.
Официальный сайт Postfix где есть много информации на английском языке. Следите за нашим почтовым разделом, будет много интересного.
Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.
Microsoft Exchange Server 2016 Cumulative Update 15
Отправка письма из Powershell
Microsoft Exchange Server 2016 Cumulative Update 20
11 thoughts on “ Управление очередью сообщений в Postfix ”
Добрый день, можно как-то посмотреть все письма от одного отправителя?
Добрый, я обычно делаю так mailq|grep pismo@test.ru
Добрый день.
А как перенаправить сообщение на другой smtp?
Допустим в очереди есть сообщение которое было отправлено на домен имеющий две MX записи, при этом один из указанных MX стал недоступен и соединения на него не принимаются. Сообщение зависло в очереди со статусом «connection timed out», при этом второй узел доступен и готов принимать сообщения.
Добрый, повторную отправку сообщения пробовали? postsuper -r
Попробовал: создается новый идентификатор, но сообщение отправляется все туда же. MX preference явно указывает, что нужно отправлять на другой адрес, но при повторной отправке как и раньше шлет на старый. DNS кэш пробовал очищать рестартом dnsmasq. Не помогает.
Использую Zimbra OSE 8.8.15_GA_3901
Перезапуск MTA не помогает.
Что-то странное. Потому что создав новый идентификатор он по сути заново пытается отправить вновь запрашивая все записи, тем более после перезапуска сервера кеш чистится. Можно пример лога?
6C85A1FE0A77 842336 Wed Sep 16 07:38:16 @
(connect to mail2.akson.ru[79.175.40.191]:25: Connection timed out)
@akson.ru
219411FE0A8C 840673 Wed Sep 16 07:54:06 @
(connect to mail2.akson.ru[79.175.40.191]:25: Connection timed out)
@akson.ru
# nslookup -type=MX akson.ru
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
akson.ru mail exchanger = 10 mail.akson.ru.
akson.ru mail exchanger = 1000 mail2.akson.ru.
Authoritative answers can be found from:
mail.akson.ru internet address = 134.19.150.100
mail2.akson.ru internet address = 79.175.40.191
Сообщение 219411FE0A8C было создано заново и отправлено после обнаружения застрявшего.
Источник