Komut satırı

Text
spamscanner <command> [options]
KomutNe yapar
scan [file|-]Bir dosyadan veya standart girdiden gelen iletiyi tarar
filter -f <sender> -- <recipients...>Postfix içerik filtresi: standart girdiyi tarar, üst bilgileri ekler, iletiyi aktarır
milterPostfix ve Sendmail için milter, bağlantı noktası 7831
httpHTTP API, bağlantı noktası 7832
serverDüz TCP sunucusu, bağlantı noktası 7830
spamdSpamAssassin uyumlu spamd sunucusu, bağlantı noktası 783
trainmbox dosyalarından, Maildir'lerden, klasörlerden veya veri kümelerinden bir model eğitir
evalBir modeli etiketlenmiş posta üzerinde ölçer
learn spam|ham [file|-] --model <file>Bir modele bir ileti öğretir
llm-testDil modeli ayarlarını üç örnek iletiyle denetler
modelsÖnerilen açık modelleri listeler
version, help

scan#

Shell
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
SeçenekAnlamı
--jsonSonucun tamamını JSON olarak yazdırır
--headersİletiyi X-Spam-* üst bilgileri eklenmiş olarak yazdırır
--subject-tag <tag>Ayrıca spamın konusunun başına ekler
--verboseHer testi ve sınıflandırıcının en güçlü ipuçlarını gösterir
--threshold <n>Postanın spam sayıldığı puan (varsayılan 5)
--reject-threshold <n>Postanın reddedildiği puan (varsayılan 15)
--model <file>Paketle gelen model yerine bir model dosyası
--no-classifierSınıflandırıcıyı kullanmaz
--config <file>Kitaplık seçeneklerini içeren bir JSON dosyası
--allow-language <codes>Kabul edilen diller, örneğin en,de,fr

Çıkış kodları: 0 hamİstenen posta: spamın tersi., 1 spam, 2 hata.

SMTP oturumu#

SeçenekAnlamı
--ip <address>İletiyi gönderen istemcinin IP adresi
--hostname <name>İstemcinin doğrulanmış ters DNS adı
--helo <name>İstemcinin HELO veya EHLO'da verdiği ad
--from <address>Zarf göndericisi (MAIL FROM)
--to <address>Zarf alıcısı; birden çok alıcı için tekrarlayın

Denetimler#

SeçenekAnlamı
--authSPF, DKIM, DMARC ve ARC denetimi yapar (--ip gerektirir)
--dnsbl <zone>IP engelleme listesi, örneğin zen.spamhaus.org; tekrarlanabilir
--uribl <zone>Bağlantılar için alan adı engelleme listesi, örneğin dbl.spamhaus.org; tekrarlanabilir
--dns-server <ip>DNS denetimleri için ad sunucusu; tekrarlanabilir
--no-cloudflareBağlantıları Cloudflare'in filtreleme yapan çözümleyicilerine sormaz
--clamav [socket]Ekleri varsayılan soketindeki ya da belirtilen soketteki clamd ile tarar
--allowlist <value>Bu IP adresini, alan adını veya adresi her zaman kabul eder; tekrarlanabilir
--denylist <value>Bu IP adresini, alan adını veya adresi her zaman reddeder; tekrarlanabilir

Dil modeli#

SeçenekAnlamı
--llm <provider>ollama, clef-flash, jev, openai, anthropic ve diğerleri (liste)
--llm-model <name>Model, örneğin qwen3.5:4b veya claude-haiku-4-5
--llm-method <method>decision (tek adımda her karar için bir olasılık; kullanılabildiği yerde varsayılan) veya generate (yöntemler)
--llm-account <id>clef ve clef-flash için Cloudflare hesap kimliği
--llm-url <url>Temel URL, örneğin http://10.0.0.5:11434
--llm-host, --llm-port, --llm-path, --llm-protocolSağlayıcı URL'sinin bir parçasını değiştirir
--llm-api-key <key>API anahtarı; aşağıdaki ortam değişkenlerine de bakın
--llm-auth <type>bearer, x-api-key, api-key, basic, header veya none
--llm-auth-header <name>--llm-auth header ile birlikte anahtar için üst bilgi
--llm-username, --llm-password--llm-auth basic için
--llm-header "Name: value"Ek istek üst bilgisi; tekrarlanabilir
--llm-mode <mode>auto (yalnızca sınırdaki durumlar, varsayılan) veya always
--llm-timeout <ms>Varsayılan 30000
--llm-policy <text>Model için ek kurallar, örneğin "Asla e-postayla fatura göndermeyiz"
--llm-redact, --no-llm-redactÖnce kişisel verileri çıkarır; uzak sağlayıcılar için varsayılan olarak açık

filter#

Bir Postfix içerik filtresi. Standart girdiden bir ileti okur, X-Spam-* üst bilgilerini ekler ve iletiyi aynı zarfla sendmail'e aktarır.

Shell
spamscanner filter -f "$sender" -- "$recipient"
SeçenekAnlamı
--sendmail <path>Varsayılan /usr/sbin/sendmail
--subject-tag <tag>Spamın konusunun başına ekler
--rejectReddetme eşiğindeki postayı aktarmak yerine geri döndürür
--discardReddetme eşiğindeki postayı aktarmak yerine atar

Çıkış kodları, Postfix'in okuduğu sendmail kurallarını izler: 0 teslim edildi (veya atıldı), 64 alıcı belirtilmedi, 69 spam olarak reddedildi (Postfix iletiyi geri döndürür), 75 herhangi bir hata; böylece Postfix iletiyi saklar ve daha sonra yeniden dener.

milter, http, server ve spamd#

Shell
spamscanner milter --port 7831 --reject --subject-tag "[SPAM]"
spamscanner http --port 7832 --token "$SPAMSCANNER_TOKEN"
spamscanner server --port 7830
spamscanner spamd --port 783

783, SpamAssassin istemcilerinin varsayılan olarak kullandığı bağlantı noktasıdır. 1024'ün altındaki bağlantı noktaları root yetkisi veya CAP_NET_BIND_SERVICE yeteneği gerektirir; --port 7833 gibi başka bir bağlantı noktası kullanın ve bunu istemciye bildirin.

SeçenekAnlamı
--port <n>TCP bağlantı noktası
--host <ip>Dinlenecek adres (varsayılan 127.0.0.1)
--socket <path>Bunun yerine bir Unix soketini dinler
--rejectMilter: reddetme eşiğindeki postayı geri çevirir
--reject-code <n>Milter: 451, daha sonra yeniden dene (varsayılan) veya 550
--quarantineMilter: spamı posta sunucusunun karantinasında bekletir
--name <hostname>Milter: Authentication-Results içinde bu sunucunun adı
--token <secret>HTTP: Authorization: Bearer <secret> gerektirir; /learn için zorunludur
--allow-tellspamd: öğrenmek için TELL isteklerini (spamc -L spam) kabul eder
--out <file>HTTP ve spamd: öğrenilenleri bu model dosyasına kaydeder
--subject-tag <tag>Milter ve spamd: spamın konusunun başına ekler
--verboseMilter: her taramayı günlüğe yazar. TCP sunucusu: tek bir metin satırıyla yanıt verir

Yukarıdaki tarama seçenekleri sunucular için de geçerlidir. Milter, HTTP API, TCP sunucusu ve spamd.

train, eval ve learn#

Shell
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
SeçenekAnlamı
--spam <path>Spam: bir mbox dosyası, bir Maildir veya .eml dosyalarından oluşan bir klasör; tekrarlanabilir
--ham <path>Ham, aynı şekilde; tekrarlanabilir
--dataset <file>Metin ve etiket sütunları içeren bir CSV veya JSON Lines dosyası; tekrarlanabilir
--text-column <name>, --label-column <name>Kendiliğinden tespit edilmediklerinde sütun adları
--out <file>Modelin yazılacağı yer (varsayılan spamscanner-model.json)
--mergeBoş bir model yerine paketle gelen modelden (veya --model) başlar

learn model dosyasını yerinde günceller; ilk seferde dosyayı paketle gelen modelden oluşturur. Eğitim

llm-test ve models#

Shell
spamscanner models
spamscanner llm-test --llm ollama --llm-model qwen3.5:4b

llm-test modele İngilizce ve İtalyanca olarak bir sıradan ileti ve iki dolandırıcılık iletisi gönderir, kararlarını, her birinin ne kadar sürdüğünü, kullanılan yöntemi ve donanımı yazdırır ve yalnızca üçü de doğruysa 0 koduyla çıkar.

Yapılandırma dosyası#

--config file.json (veya SPAMSCANNER_CONFIG ortam değişkeni) kitaplık seçeneklerini yükler. Komut satırı seçenekleri dosyadakileri geçersiz kılar.

JSON
{
  "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}
}

Ortam değişkenleri#

DeğişkenAnlamı
SPAMSCANNER_CONFIGYapılandırma dosyası
SPAMSCANNER_MODELPaketle gelen model yerine kullanılan model dosyası
SPAMSCANNER_TOKENHTTP API için belirteç
SPAMSCANNER_LLM_API_KEYHerhangi bir dil modeli sağlayıcısı için API anahtarı
CLOUDFLARE_API_TOKEN ve 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_KEYHer sağlayıcının kendi anahtarı
NODE_DEBUG=spamscanner*Hata ayıklama günlüğü

Bu sayfayı GitHub'da düzenle · Markdown ·