Spamszűrő, amely minden nyelven olvas, és minden döntését megindokolja.

A Spam Scanner kiszűri a spamet, az adathalászatot, a csalásokat és a kártevőket Node.js-ben, a parancssorban és olyan levelezőszervereken, mint a Postfix, az Exim és a Haraka. Minden eredmény felsorolja a teljesült teszteket és azok okát.

npm install -g spamscanner
  • Node.js 18+
  • Milter, spamd, HTTP
  • Ollama, Claude, ChatGPT
  • Nincs telemetria
$ spamscanner scan message.eml
SPAM  score 16.3 (spam at 5.0, reject at 15.0)  action: reject  language: en
   +6.3  BAYES_999                    Classifier spam probability 99.9%
   +5.0  PHISHING_LOOKALIKE_DOMAIN    "paypa1-secure.top" imitates paypal by swapping characters
   +3.0  DECEPTIVE_LINK               A link shows "https://www.paypal.com/signin" but goes to paypa1-secure.top
   +2.0  FROM_NAME_BRAND              Display name says "paypal" but the message is from paypa1-secure.top
$ echo $?
1

Hogyan születik a döntés egy levélről

Minden ellenőrzés pontot ad hozzá vagy von le, és az összeg dönt. A küszöbök és a pontok módosíthatók, és semmi sem fekete doboz: az eredmény minden tesztet megnevez.

  1. Olvasás

    A levél feldolgozásra kerül, a szövege pedig normalizálódik: a díszített betűk, a láthatatlan karakterek és a hasonmás ábécék álcája lekerül.

  2. Ellenőrzés

    Az osztályozó, valamint a hivatkozás-, melléklet-, hitelesítés-, tiltólista- és szabályellenőrzések egyszerre futnak, mindegyik saját időkorláttal.

  3. Pontszám

    Minden teszt pontot ad hozzá vagy von le. 5 ponttól a levél spam, 15 ponttól a levelezőszervernek vissza kell utasítania.

  4. Kérdezés

    A kétes esetek nyelvi modellhez kerülhetnek, amely legfeljebb 6 pontot ad hozzá vagy legfeljebb 3-at von le.

  • 5 alattelfogadás
  • 5 és 15 közöttspamként jelölés
  • 15 vagy többelutasítás

Nézze meg 1:58 alatt

Hogyan kap pontszámot egy levél, hogyan olvas minden nyelvet, mikor kérdez meg nyelvi modellt, és hogyan illeszkedik a Postfixhez, az Eximhez, a Harakához és a Node.js-hez.

Angol nyelvű narrációval és angol feliratokkal.

A videó címkockája: a Spam Scanner logója.

Mit ellenőriz

A szavak csak az egyik jelzést adják. A hivatkozások, a feladók, a mellékletek és a hitelesítés ugyanannyit elárulnak, és egyik sem függ a levél nyelvétől.

  • Osztályozó minden írásrendszerhez

    Szavak, szópárok, hivatkozások, feladók, HTML és mellékletek, a SpamBayes módszerével megszámolva és összesítve, őszinte „bizonytalan” válasszal, ha a jelek ellentmondanak egymásnak.

    Hogyan dönt
  • Minden nyelv, körültekintően

    Unicode-szószegmentálás kínaihoz, japánhoz és thaihoz, az álcázások feloldása, és nincs büntetés olyan nyelvért, amelyen a modell kevés hamet látott.

    Nyelvek
  • Adathalászat

    Cirill vagy felcserélt betűs hasonmás domainek, más címet mutató hivatkozásszövegek, márkanevek a megjelenített nevekben és a Cloudflare kártevőszűrő DNS-feloldója.

    Adathalászat-ellenőrzések
  • Mellékletek

    Futtatható fájlok felismerése a bájtjaik alapján, .pdf-re átnevezve is; dupla kiterjesztések; programok ZIP-fájlokban; Office-makrók; aktív PDF-ek; ClamAV.

    Mellékletek ellenőrzése
  • Hitelesítés

    SPF, DKIM, DMARC és ARC, DNS-tiltólisták, engedélyező és tiltó listák, valamint egy szabály a saját domaint hamisító levelekre.

    Hitelesítés
  • Nyelvi modellek

    A kétes esetek egy modellhez kerülnek: Ollamához a saját gépen, vagy a Claude-hoz, a ChatGPT-hez, a Geminihez és bármely OpenAI-kompatibilis szerverhez.

    Nyelvi modellek

Minden teszt és pontszámaMűködés

Minden nyelv, találgatás nélkül

A szavakat a Unicode-szabályok határozzák meg, így a szóközök nélkül írt nyelvek is működnek, és az álcázások a számlálás előtt feloldódnak. Ezeket a szavakat számolja az osztályozó; az oldal elkészítésekor kerültek kiszámításra.

Ha a beépített modell egy nyelven kevés hamet (kért levelet) látott, ott „bizonytalan” eredményt ad „spam” helyett, így a hétköznapi arab vagy koreai levelet soha nem jelöli meg az írásrendszere miatt. Nyelvek

Álcázott angol

Claim your fr␣ee prіze: V1agra 𝐅𝐑𝐄𝐄

  • claim
  • your
  • free
  • prize
  • viagra
  • free

Nulla szélességű szóköz, cirill і, betű helyett számjegy és matematikai félkövér betűk

Kínai, szóközök nélkül

恭喜您获得一百万元大奖

  • 恭喜
  • 您
  • 获得
  • 一
  • 百万
  • 元
  • 大奖

Szótár alapján szegmentálva

Thai, szóközök nélkül

ยินดีด้วยคุณได้รับรางวัลหนึ่งล้านบาท

  • ยินดี
  • ด้วย
  • คุณ
  • ได้
  • รับ
  • รางวัล
  • หนึ่ง
  • ล้าน
  • บาท

Szótár alapján szegmentálva

Orosz

Поздравляем! Вы выиграли миллион

  • поздравляем
  • вы
  • выиграли
  • миллион

Kisbetűsítés a Unicode-szabályok szerint

Illeszkedik a levelezőszerverhez

Milter a Postfixhez és a Sendmailhez, SpamAssassin-kompatibilis spamd szerver a spamc, az Exim és a Haraka számára, tartalomszűrő, HTTP API, TCP-szerver és a könyvtár.

Mindegyik X-Spam-Flag, X-Spam-Score, X-Spam-Status fejléceket ad hozzá, és eltávolítja a feladó által hamisítottakat.

Shell
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"

# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_default_action = accept

A milter az SMTP-munkamenet közben ellenőrzi a levelet, így az elutasítási küszöböt elérő spamet még az átvétel előtt visszautasítja. Postfix-útmutató

Nyelvi modell a kétes esetekre

Az egyértelmű spam és az egyértelmű ham soha nem jut el hozzá. Ha a pontszám a küszöb közelében van, vagy az osztályozó bizonytalan, egy modell elolvassa a levelet, és azt feleli: spam, adathalászat, csalás, kártevő vagy ham. A modell futhat a saját gépen vagy egy szolgáltatónál, bármilyen URL-en, porton és hitelesítéssel.

A levélben az MI-szűrőknek elrejtett utasítások spamnek számítanak, és a modell azt az utasítást kapja, hogy a levél adat. A végpontok közötti tesztek ezt egy valódi modellel, Ollamán keresztül ellenőrzik.

  • Ollama
  • LM Studio
  • llama.cpp server
  • vLLM
  • LocalAI
  • Jan
  • OpenAI
  • Anthropic (Claude)
  • Google Gemini
  • Mistral AI
  • Groq
  • OpenRouter
  • DeepSeek
  • xAI
  • Together AI
  • Fireworks AI
  • Cerebras
  • Hugging Face Inference Providers
  • Azure OpenAI
  • Cloudflare Clef
  • Cloudflare Clef Flash
  • TypeSafe Jev
  • TypeSafe Jev on OpenRouter
  • Any decision model server
Shell
ollama pull qwen3.5:4b
spamscanner llm-test --llm ollama --llm-model qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4b

Körvonalas: a saját gépen fut. A személyes adatok eltávolításra kerülnek, mielőtt a levél egy külső szolgáltatóhoz kerül.

OllamaHugging FaceLicencMéret
qwen3.5:0.8bQwen/Qwen3.5-0.8BApache-2.01.3 GB
gemma4:e2bgoogle/gemma-4-E2B-itApache-2.04.6 GB
qwen3.5:4bQwen/Qwen3.5-4BApache-2.03.3 GB
qwen3.5:9bQwen/Qwen3.5-9BApache-2.06.6 GB
gpt-oss-safeguard:20bopenai/gpt-oss-safeguard-20bApache-2.014 GB

Ajánlott nyílt modellek. Összes ajánlás

Mérhető és tanítható

A beépített modellt nyilvános adatkészleteken tanították, és olyan leveleken tesztelték, amelyeket nem látott. A saját leveleken tanított modell jobban teljesít: tanítható mbox-fájlokból, Maildirekből vagy adatkészletekből, mérhető, és a „spam jelentése” gombokból is tanulhat.

Tanítás

Félretett levelekLevelekPrecizitásFelidézésTéves pozitívok
angol6564100,0%97,1%0,0%
orosz1682100,0%97,4%0,0%
olasz138998,1%85,3%1,8%
német130997,7%76,1%2,2%
spanyol128197,5%82,6%2,6%
Mind13 84099,2%85,1%0,6%

Csak az osztályozó, a nyilvános tanítóadatai minden tizedik, félretett levelén. A bizonytalan levelek kihagyottnak számítanak. A német, az olasz és a spanyol adatok zajos címkéjű szintetikus adatkészletekből származnak. A beépített modellről

A Forward Email számára készült

A Forward Email nem naplózza a levelek tartalmát, ezért nem küldhette a leveleket külső szűrőszolgáltatáshoz. A Spam Scanner a saját szervereken fut, beállítás nélkül semmit nem küld sehova, és minden döntését megindokolja anélkül, hogy bárki elolvasná a levelet. Forward Email és frissítés

Az adatvédelemre összpontosító e-mail-szolgáltatás, a Forward Email projektje.