Skoro w nagłówkach maila można sprawdzać wiele rzeczy czemu by nie sprawdzić poprawności Message-ID. W SA jest już reguła sprawdzająca czy jest tylko jeden znak ‚@’. Zaprzęgnijmy wyrażenia regularne niech sprawdzają. Oto reguły dla Message-ID.
Message_ID kończy się na localhost.localdomain
Zgodnie z budową nagłówka MSID powinno być niepowtarzalne czy nie może się kończyć na localhost.localdomain. Powinno się kończyć (najlepiej by było) nazwa hosta. Poniższa reguła dodaje 1.5 pkt i empirycznie jest to dobra wartość.
header ZABOJCASPAMU_MSID_LOCALHOST Message-ID=~/\@localhost\.localdomain>$/ describe ZABOJCASPAMU_MSID_LOCALHOST Message-ID konczy sie localhost\.localdomain score ZABOJCASPAMU_MSID_LOCALHOST 1.5
Message_ID kończy się na local
Nie ma wielkiej filozofii. tak jak poprzednia reguła dobrze również odsiewa spam. Zasada podobna.
header ZABOJCASPAMU_MSID_LOCAL Message-ID=~/\.local>$/ describe ZABOJCASPAMU_MSID_LOCAL Message-ID konczy sie local score ZABOJCASPAMU_MSID_LOCAL 1
Po znaku @ nie ma kropki
Czyli w MSID nie ma pełnej domeny. Reguła wydawała mi się świetna do wysyłki spamu gdyby nie to, że niektóre duże serwery w Polsce wypuszczają takie coś bez kropki. Szczególnie interia.pl pozwala na takie dziwne twory. Wysłanie z ich domeny lub przez ich serwery maile mają nieraz takie Message-ID. Z interią są inne tez problemy bo oni powpisywani są na różne RBLe.
header ZABOJCASPAMU_MSID_NODOT Message-ID=~/\@[a-zA-Z0-9-]+>/ describe ZABOJCASPAMU_MSID_NODOT Message-ID po @ brak kropki score ZABOJCASPAMU_MSID_NODOT 0.2
Własna domena w Message-ID
A takie potworki też się zdarzają. W mailu przychodzącym z zewnątrz w Message-Id jest nasza domena. Przy zwrotce to ok ale przy badziewiu innym? Nie ma szans. Znaczy jakiś błąd czy coś innego. Ja mam ustawione tak, że maile wysyłane nie są sprawdzane pod kontem spamu. Wiec reguła działa prawidłowo. Jeśli jest inaczej każdy mail wysyłany może się łapać (nie jestem pewien bo nie sprawdzałem, być może SA jak sprawdza nie zna Message-ID).
UWAGA: w poniższej regule w pierwszej linii tam gdzie jest WLASNY.SERWER należy wpisać domenę lub host własny(zgodny z tym co nasz serwer produkuje).
header __ZABOJCASPAMU_FAKE_MSID0 Message-ID=~/WLASNY.SERWER/ header __ZABOJCASPAMU_FAKE_MSID1 From=~/(MAILER\-DAEMON|mailer\-daemon)\@/ meta ZABOJCASPAMU_FAKE_MSID __ZABOJCASPAMU_FAKE_MSID0 && !__ZABOJCASPAMU_FAKE_MSID1 describe ZABOJCASPAMU_FAKE_MSID W message ID moje domena score ZABOJCASPAMU_FAKE_MSID 0.4
I to tyle z reguł dotyczących Message_ID. Pomysł wydawał się całkiem sensowny ale niestety „dobre” serwery tez generują źle ten nagłowek.