Mám mailovou schránku na linuxovém serveru s SSH přístupem, takže do ní přeposíláním nebo pravidelným stahováním fetchmailem soustředím veškerou svou poštu i z jiných schránek. V souboru ~/.procmailrc filtruji podle těchto kritérií:
1. přílohy s M$-executable :-)) příponami (to samozřejmě není antispamová, ale antivirová kontrola)
2. testování IP adres z received hlaviček proti třem blacklistům
3. určitá slova v předmětu a těle mailu
4. HTML značky a nesmyslné značky v těle (změť písmen a číslic uvnitř <>)
5. 24 celých TLD (např. jp, de, fr, nl apod.), protože nic smysluplného mi z nich nechodí, pokud ano, mohu konkrétní adresu nebo doménu 2. řádu povolit
6. určité domény 2. řádu v generických TLD (com, net) a v cz doméně, například již mnohokrát zmíněný hotmail.com nebo yahoo.com.
Zachyceného spamu je asi 95 %, projde asi 5 %, false-positives rovněž asi 5 %. Od 11. prosince třídím spam do složek podle kritérií, která o označení za spam rozhodla, takže mohu porovnávat účinnost. Zde je malá statistika:
5 s executable přílohami (ale říjen a listopad byly v tomto směru žně, průměrně asi 20 virů za den), 331 podle IP adres, 46 podle předmětu, 67 podle těla mailu (zde bývají false-positives nejčastěji, typicky když někdo z kamarádů pošle vtip o sexu), 3 podle HTML poznámek a značek (ale zde mám asi chybu v regulárních výrazech, protože zachycuje asi 1/2 mailů od crond, přestože takové značky neobsahuje, zatímco skutečný spam občas nějaký projde), 19 podle domén, 18 nezachycených spamů.
Čas od času prohlížím nezachycený spam a upravuji regulární výrazy. Také mám v plánu napsat skriptík, který z předmětu a těla mailu vyháže interpunkci, upraví některé znaky a teprve potom otestuje na výskyt slov, aby odhalil zkomoleniny typu vi:@-gr.a nebo pen|s.