Приветствую, %username%
! Рано или поздно все сталкиваются с проблемами в работе почтового сервера. И одна из распространенных причин это переполнение очереди сообщений. Рассмотрим как же эту очередь посмотреть и почистить.
Ну собственно всё гениальное просто. Заходим на сервер:
ssh -p 22 [email protected]
Да я хожу на сервера под рутом. Да по ключу. Да пароль не меньше 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
На этом собственно всё!
Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат, а так же подписывайся на канал.