Приветствую, %username%! Рано или поздно все сталкиваются с проблемами в работе почтового сервера. И одна из распространенных причин это переполнение очереди сообщений. Рассмотрим как же эту очередь посмотреть и почистить.

Ну собственно всё гениальное просто. Заходим на сервер:

Да я хожу на сервера под рутом. Да по ключу. Да пароль не меньше 18 символов.

Далее для того, чтобы просто посмотреть какие сообщения в очереди есть и узнать их количество есть несколько вариантов.

Первый:

mailq

Нам покажется вся очередь сообщений, с указанием общего объёма и количества писем в очереди. Пример (отрывок):

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 
E031AAB432F5* 8721 Fri Oct 28 03:25:54 [email protected] [email protected] 
8DB65AB43E34* 2130 Fri Oct 28 09:01:52 [email protected] [email protected] 
2E0FDAB40FF4* 2130 Fri Oct 28 04:01:20 [email protected] [email protected] 
BD2ACAB440A9     4696 Fri Oct 28 01:11:17  MAILER-DAEMON (connect to static.vnpt.vn[203.162.0.78]:25: Connection refused) [email protected] 
B7D55AB440D2     4708 Fri Oct 28 04:23:30  MAILER-DAEMON (delivery temporarily suspended: connect to static.vnpt.vn[203.162.0.78]:25: Connection refused) [email protected] 
B5292AB440E9     4714 Fri Oct 28 04:23:31  MAILER-DAEMON (delivery temporarily suspended: connect to static.vnpt.vn[203.162.0.78]:25: Connection refused) [email protected] -- 3542 Kbytes in 195 Requests.

Второй:

postqueue -p

Вывод точно такой же как и у предыдущей команды. Но postqueue мне больше нравится для более детального разбора полётов, т.к. имеет возможность вывода данных в JSON формате:

postqueue -j | less

less предоставит нам более удобную навигацию с детальной информацией об отправителях, получателях, размере, ответе сервера получателя. Далее мы определяемся с тем, какое письмо можно удалить, а какое можно оставить. Удалить конкретное письмо можно вот такой командой:

postsuper -d 8DB65AB43E34

Где 8DB65AB43E34 это ID конкретного письма. Ну а если вы всё же решили полностью почистить всю очередь удалив в ней все письма, тогда вместо конкретного ID указывается параметр ALL:

postsuper -d ALL

После этого наша очередь пуста. Собственно с вопросом очистки очереди всё. Далее меня интересует вопрос занесения в черный список конкретных email-адресов, серверов, IP-адресов. В Postfix всё делается следующим образом:

vim /etc/postfix/sender_access.pcre

И вносим в этот файл интересующие нас данные в соответствии с примером ниже:

cat /etc/postfix/sender_access.pcre
203.162.0.78 REJECT 
static.vnpt.vn REJECT 
[email protected] REJECT

После этого необходимо выполнить следующее:

postmap hash:sender_access.pcre

А так же отредактировать файл main.cf в разделе Recipient restrictions:

vim /etc/postfix/main.cf

Вносим следующую строчку сразу после уже перечисленных там:

check_sender_access hash:/etc/postfix/sender_access.pcre

Далее для полноты эффекта неплохо бы подкрутить еще и SpamAssassin. По умолчанию там включены только белые списки. Нам же необходимо добавить туда еще и список засранцев. Делается это следующим образом. Открываем файл /etc/mail/spamassassin/local.cf и вносим туда всё что необходимо в соответствии с примером ниже, после чего перезагружаем сервис SpamAssassin:

cat /etc/mail/spamassassin/local.cf
# Blacklist
blacklist_from *@static.vnpt.vn

Мы просто добавили конкретный домен. Теперь от него мы более не получим никаких писем. Далее просто рестартуем сервис SpamAssassin:

service spamassassin restart

На этом собственно всё!


Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат, а так же подписывайся на канал.