Parancssor
Text Másolás
spamscanner <command> [options]
Parancs Mit csinál scan [file|-]Levél vizsgálata fájlból vagy a szabványos bemenetről
filter -f <sender> -- <recipients...>Postfix-tartalomszűrő: a szabványos bemenet vizsgálata, fejlécek hozzáadása, továbbadás
milterMilter a Postfixhez és a Sendmailhez, 7831-es port
httpHTTP API, 7832-es port
serverEgyszerű TCP-szerver, 7830-as port
spamdSpamAssassin-kompatibilis spamd szerver, 783-as port
trainModell tanítása mbox-fájlokból, Maildirekből, mappákból vagy adatkészletekből
evalModell mérése címkézett leveleken
learn spam|ham [file|-] --model <file>Egy levél megtanítása egy modellnek
llm-testA nyelvimodell-beállítások ellenőrzése három mintalevéllel
modelsAz ajánlott nyílt modellek listája
version, help
scan#
Shell Másolás
spamscanner scan message.eml
spamscanner scan - < message.eml
spamscanner scan message.eml --json
spamscanner scan message.eml --headers > tagged.eml
spamscanner scan message.eml --subject-tag "[SPAM]" > tagged.eml
Kapcsoló Jelentés --jsonA teljes eredmény kiírása JSON-ként
--headersA levél kiírása a hozzáadott X-Spam-* fejlécekkel
--subject-tag <tag>A spam tárgyának előtaggal való ellátása is
--verboseMinden teszt és az osztályozó legerősebb jeleinek megjelenítése
--threshold <n>Az a pontszám, amelytől a levél spam (alapértelmezés: 5)
--reject-threshold <n>Az a pontszám, amelytől a levél elutasításra kerül (alapértelmezés: 15)
--model <file>Modellfájl a beépített helyett
--no-classifierAz osztályozó mellőzése
--config <file>Könyvtári beállításokat tartalmazó JSON-fájl
--allow-language <codes>Elfogadott nyelvek, például en,de,fr
Kilépési kódok: 0 hamKért levél: a spam ellentéte. , 1 spam, 2 hiba.
SMTP-munkamenet#
Kapcsoló Jelentés --ip <address>A levelet küldő kliens IP-címe
--hostname <name>A kliens ellenőrzött fordított DNS-neve
--helo <name>A HELO vagy EHLO parancsban megadott név
--from <address>A boríték szerinti feladó (MAIL FROM)
--to <address>A boríték szerinti címzett; többhöz ismételhető
Ellenőrzések#
Kapcsoló Jelentés --authSPF, DKIM, DMARC és ARC ellenőrzése (a --ip szükséges hozzá)
--dnsbl <zone>IP-tiltólista, például zen.spamhaus.org; ismételhető
--uribl <zone>Domain-tiltólista a hivatkozásokhoz, például dbl.spamhaus.org; ismételhető
--dns-server <ip>Névszerver a DNS-ellenőrzésekhez; ismételhető
--no-cloudflareA Cloudflare szűrő DNS-feloldóinak mellőzése a hivatkozásoknál
--clamav [socket]Mellékletek vizsgálata clamd-vel, az alapértelmezett vagy a megadott socketen
--allowlist <value>Ennek az IP-címnek, domainnek vagy címnek mindig elfogadása; ismételhető
--denylist <value>Ennek az IP-címnek, domainnek vagy címnek mindig elutasítása; ismételhető
Nyelvi modell#
Kapcsoló Jelentés --llm <provider>ollama, clef-flash, jev, openai, anthropic és mások (lista )
--llm-model <name>Modell, például qwen3.5:4b vagy claude-haiku-4-5
--llm-method <method>decision (valószínűség minden ítéletre, egy lépésben; ahol elérhető, ez az alapértelmezés) vagy generate (módszerek )
--llm-account <id>Cloudflare-fiókazonosító a clef és a clef-flash szolgáltatóhoz
--llm-url <url>Alap-URL, például http://10.0.0.5:11434
--llm-host, --llm-port, --llm-path, --llm-protocolA szolgáltató URL-jének egy részét módosítja
--llm-api-key <key>API-kulcs; lásd még az alábbi környezeti változókat
--llm-auth <type>bearer, x-api-key, api-key, basic, header vagy none
--llm-auth-header <name>A kulcs fejléce, a --llm-auth header beállítással
--llm-username, --llm-passwordA --llm-auth basic beállításhoz
--llm-header "Name: value"További kérésfejléc; ismételhető
--llm-mode <mode>auto (csak a kétes esetek, alapértelmezés) vagy always
--llm-timeout <ms>Alapértelmezés: 30000
--llm-policy <text>További szabályok a modellnek, például „Soha nem küldünk számlát”
--llm-redact, --no-llm-redactA személyes adatok előzetes eltávolítása; távoli szolgáltatóknál alapértelmezetten bekapcsolva
filter#
Postfix-tartalomszűrő . Beolvas egy levelet a szabványos bemenetről, hozzáadja az X-Spam-* fejléceket, és ugyanazzal a borítékkal átadja a sendmailnek.
Shell Másolás
spamscanner filter -f "$sender" -- "$recipient"
Kapcsoló Jelentés --sendmail <path>Alapértelmezés: /usr/sbin/sendmail
--subject-tag <tag>A spam tárgyának előtaggal való ellátása
--rejectAz elutasítási küszöböt elérő levél visszapattintása továbbadás helyett
--discardAz elutasítási küszöböt elérő levél eldobása továbbadás helyett
A kilépési kódok a sendmail konvencióit követik, amelyeket a Postfix értelmez: 0 kézbesítve (vagy eldobva), 64 nincs megadva címzett, 69 spamként elutasítva (a Postfix visszapattintja), 75 bármilyen hiba, így a Postfix megtartja a levelet, és később újra próbálkozik.
milter, http, server és spamd#
Shell Másolás
spamscanner milter --port 7831 --reject --subject-tag "[SPAM]"
spamscanner http --port 7832 --token "$SPAMSCANNER_TOKEN"
spamscanner server --port 7830
spamscanner spamd --port 783
A 783-as port az, amelyet a SpamAssassin-kliensek alapértelmezetten használnak. Az 1024 alatti portokhoz root jogosultság vagy a CAP_NET_BIND_SERVICE képesség szükséges; ehelyett használható egy másik port, például --port 7833, amelyet a kliensnek is meg kell adni.
Kapcsoló Jelentés --port <n>TCP-port
--host <ip>A figyelési cím (alapértelmezés: 127.0.0.1)
--socket <path>Figyelés ehelyett Unix-socketen
--rejectMilter: az elutasítási küszöböt elérő levelek visszautasítása
--reject-code <n>Milter: 451, próbálja később (alapértelmezés), vagy 550
--quarantineMilter: a spam visszatartása a levelezőszerver karanténjában
--name <hostname>Milter: ennek a szervernek a neve az Authentication-Results fejlécben
--token <secret>HTTP: Authorization: Bearer <secret> megkövetelése; a /learn igényli
--allow-tellspamd: TELL kérések (spamc -L spam) elfogadása tanuláshoz
--out <file>HTTP és spamd: a tanultak mentése ebbe a modellfájlba
--subject-tag <tag>Milter és spamd: a spam tárgyának előtaggal való ellátása
--verboseMilter: minden vizsgálat naplózása. TCP-szerver: válasz egyetlen szövegsorban
A fenti vizsgálati kapcsolók a szerverekre is vonatkoznak. A milter , a HTTP API, a TCP-szerver és a spamd .
train, eval és learn#
Shell Másolás
spamscanner train --spam ~/Mail/Junk --ham ~/Mail/Archive --out my-model.json
spamscanner eval --model my-model.json --spam test/spam.mbox --ham test/ham.mbox
spamscanner learn spam message.eml --model my-model.json
Kapcsoló Jelentés --spam <path>Spam: mbox-fájl, Maildir vagy .eml fájlokat tartalmazó mappa; ismételhető
--ham <path>Ham, ugyanígy; ismételhető
--dataset <file>Szöveg- és címkeoszlopot tartalmazó CSV- vagy JSON Lines-fájl; ismételhető
--text-column <name>, --label-column <name>Oszlopnevek, ha nem ismeri fel őket
--out <file>A modell kimeneti helye (alapértelmezés: spamscanner-model.json)
--mergeIndulás a beépített modellből (vagy a --model modellből) üres modell helyett
A learn helyben frissíti a modellfájlt, első alkalommal a beépített modellből hozza létre. Tanítás
llm-test és models#
Shell Másolás
spamscanner models
spamscanner llm-test --llm ollama --llm-model qwen3.5 :4b
Az llm-test egy hétköznapi levelet és két csalást küld a modellnek angolul és olaszul, kiírja az ítéleteit, az egyes ítéletek idejét, a használt módszert és a hardvert, és csak akkor lép ki 0-s kóddal, ha mindhárom helyes.
Konfigurációs fájl#
A --config file.json (vagy a SPAMSCANNER_CONFIG környezeti változó) könyvtári beállításokat tölt be. A parancssori kapcsolók felülírják a fájlt.
JSON Másolás
{
"threshold" : 6 ,
"authentication" : true ,
"dnsbl" : {"ip" : ["zen.spamhaus.org" ], "domain" : ["dbl.spamhaus.org" ]},
"dns" : {"servers" : ["127.0.0.1" ]},
"clamav" : {"socket" : "/var/run/clamav/clamd.ctl" },
"llm" : {"provider" : "ollama" , "model" : "qwen3.5:4b" },
"scores" : {"deceptiveLink" : 4 , "FROM_NAME_BRAND" : 3 }
}
Környezeti változók#
Változó Jelentés SPAMSCANNER_CONFIGKonfigurációs fájl
SPAMSCANNER_MODELA beépített helyett használt modellfájl
SPAMSCANNER_TOKENToken a HTTP API-hoz
SPAMSCANNER_LLM_API_KEYAPI-kulcs bármely nyelvimodell-szolgáltatóhoz
CLOUDFLARE_API_TOKEN és CLOUDFLARE_ACCOUNT_ID, TYPESAFE_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, MISTRAL_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, DEEPSEEK_API_KEY, XAI_API_KEY, TOGETHER_API_KEY, FIREWORKS_API_KEY, CEREBRAS_API_KEY, HF_TOKEN, AZURE_OPENAI_API_KEYAz egyes szolgáltatók saját kulcsa
NODE_DEBUG=spamscanner*Hibakeresési naplózás