-
Ograniczenie ilości wysyłanej i odbieranej poczty w Sendmail
Ostatnio dostałem z pozoru proste zadanie, jakim było ograniczenie wysyłania mejli przez serwer pocztowy do pewnej ilości na godzinę. Na prawdę wydaje się to banalne, ale wszystko jest kwestią posiadanego MTA. W moim przypadku był to postfix, którego lubię i cenię, a przynajmniej do tamtej chwili. Omawiane MTA nie ma możliwości (natywnie) wprowadzenie ograniczenia w wysyłce wiadomości. Do tego dzieła musimy pokusić się o narzędzie-miltera „policyd”. Trzeba skorzystać z wersji deweloperskiej, bowiem, najnowsza stabilna nie posiada funkcjonalności accountingu. Niestety takowa wersja ma sporo błędów w ustawieniach położenia plików, itp. Poza tym nie mam specjalnego zaufania do aplikacji, które musimy sami kompilować bo nie ma ich w repozytorium. Do zastosowań desktopowych czemu nie, ale w przypadku serwerowych bym uważał. Lepszym rozwiązaniem w moim przypadku okazała się przesiadka na sendmail-a, którego wielu uważa za niebezpiecznego i przestarzałego, co jest nie prawdą. Wszystko zależy bowiem od prawidłowej konfiguracji. Wróćmy do tematu limitowania wiadomości. Musimy wyedytować plik „/etc/mail/sendmail/mc”:
vim /etc/mail/sendmail/mc
Dopisujemy:
define(`confMAX_QUEUE_RUN_SIZE’, 100)dnl
gdzie liczba 100 oznacza ilość obsłużonych wiadomości (odebranych i wysłanych) w czasie trwania jednej kolejki
define(`confDELIVERY_MODE’, `queueonly’)dnl
wymuszamy korzystanie z kolejki
make -C /etc/mail
Standardowa długość kolejki do jedna godzina. Aby zmienić tą wartość musimy „dostać” się do pliku „/etc/sysconfig/sendmail”:
vim /etc/sysconfig/sendmail
Ustawiamy wartość:
QUEUE=1h
zamiast 1h możemy wpisać np. 10m dla dziesięciu minut. Pamiętajmy, że włączenie omawianej funkcjonalności spowoduje, iż np. wysłanie/odebranie wiadomości może zostać opóźnione nawet o czas trwania całej kolejki ( w zależności w którym momencie wiadomość trafi do serwera). Dzieje się tak bowiem nowa wiadomość zostaje zrealizowana w następnej kolejce po tej trwającej obecnie. Na końcu nie zapomnijmy o restarcie:
service sendmail restart
🙂 trzeba powiedzieć PERSONELOWI aby tak nie szaleli z pocztą hehe Pozdrawiam