Kendi barındırdığınız spam filtresi

Spam Scanner kendi sunucunuzda çalışır ve postayı orada tutar. Sınıflandırıcının modeli paketin içindedir, telemetri ya da güncelleme denetimi yoktur ve varsayılan olarak gönderdiği tek şey her bağlantının ana bilgisayar adı için bir DNS sorgusudur.

Sunucudan ne çıkar#

Varsayılan olarak yalnızca bir iletideki bağlantıların ana bilgisayar adları. Bunlar Cloudflare'in filtreleyen çözümleyicilerinde (1.1.1.2 ve 1.1.1.3) sıradan DNS sorgularıyla aranır ve iletinin ya da adreslerinin hiçbir parçası gönderilmez. --no-cloudflare bunu da kapatır.

Ağı kullanan diğer tüm denetimler siz açana kadar kapalıdır:

DenetimAçmak içinNe gönderir
SPF, DKIM, DMARC, ARC--authGönderenin kayıtları için DNS sorguları
DNS engelleme listeleri--dnsbl, --uriblİstemcinin IP adresini ve bağlantı alan adlarını, DNS sorgusu olarak
ClamAV--clamavEkleri, kendi clamd'nize
Bir dil modeli--llmİletinin bir özetini, belirttiğiniz sunucuya

Taramalar kaydedilmez ve saklanmaz. Güvenlik ve gizlilik

Bir sunucuya kurun#

Shell
npm install --global spamscanner

Ya da Node.js ve modelin içinde olduğu bağımsız ikili dosya:

Shell
curl -fsSL https://github.com/spamscanner/spamscanner/releases/latest/download/install.sh | bash

Kurulum betiği, ikili dosyayı kurmadan önce sürümün SHA256SUMS dosyasıyla doğrular ve her ikili dosyanın gh attestation verify ile denetlenen imzalı bir derleme kaynağı onayı vardır. İkili dosyalar Linux (x64 ve arm64), macOS ve Windows içindir. Linux ikili dosyaları glibc gerektirir, bu yüzden Alpine'de npm ile kurun. Başlarken

Güncelleme denetimi yoktur. Güncellemek için kurulum komutunu yeniden çalıştırın: iki komut da en son sürümü kurar.

Hizmet olarak çalıştırın#

MilterMail filter: Sendmail'den gelen ve Postfix'in de kullandığı, ayrı bir programın her iletiyi SMTP oturumu sırasında incelemesini sağlayan protokol., HTTP, TCP ve spamdSpamAssassin'in arka plan hizmeti. Protokolünü spamc, Exim, Haraka ve diğer SpamAssassin istemcileri kullanır. sunucuları, --host aksini söylemedikçe 127.0.0.1 üzerinde dinler. Onları yetkisiz bir kullanıcı olarak, örneğin systemd altında çalıştırın:

INI
[Service]
ExecStart=/usr/local/bin/spamscanner milter --port 7831 --auth --subject-tag [SPAM]
User=spamscanner
Group=spamscanner
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes

Tam birim ve kurulumu Postfix kılavuzundadır. Sunucuların hiçbiri TLS konuşmaz; başka bir makineden erişmek için özel bir ağ, SSH tüneli veya TLS'li bir ters vekil sunucu kullanın.

Posta sunucunuzu bağlayın#

Posta sunucusuKomutBağlantı noktası
Postfix veya Sendmailspamscanner milter7831
Postfix, hiç posta reddetmedenspamscanner filter, bir içerik filtresiyok
Exim, Haraka veya spamcspamscanner spamd783
HTTP konuşan her şeyspamscanner http7832
Basit bir TCP istemcisispamscanner server7830
Node.js ile yazılmış bir posta sunucusuimport SpamScanner from 'spamscanner'yok

Sunucular iletiye X-Spam-Flag, X-Spam-Score ve X-Spam-Status başlıklarını ekleyebilir; kitaplık ise puanı ve tetiklenen her testi döndürür. Kılavuzlar: Postfix spam filtresi, diğer posta sunucuları ve HTTP API'si.

Dil modellerini yerel tutun#

Bir dil modeli isteğe bağlıdır ve yalnızca sınırdaki iletileri okur: açık spam ve açık hamİstenen posta: spamın tersi. ona hiç ulaşmaz. OllamaAçık dil modellerini kendi makinenize indirip çalıştıran, HTTP API sunan bir program. ile aynı sunucuda çalışır, böylece hiçbir ileti sunucudan çıkmaz:

Shell
ollama pull qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4b

qwen3.5:4b bir CPU üzerinde çalışır. Barındırılan bir sağlayıcı kullanırsanız kişisel veriler gönderilmeden önce iletiden çıkarılır. Dil modelleri

Kendi postanızla eğitin#

Paketle gelen model, herkese açık veri kümeleriyle eğitilmiştir. Sunucunuzun aldığı postayla eğitilen bir model daha iyi sonuç verir ve o sunucuda kalır:

Shell
spamscanner train --spam ~/Maildir/.Junk --ham ~/Maildir/cur --out /var/lib/spamscanner/model.json
SPAMSCANNER_MODEL=/var/lib/spamscanner/model.json spamscanner milter

Bir model dosyası özniteliklerin karma değerli sayımlarını tutar; sözcükleri veya ileti metnini tutmaz. Eğitim

Gereksinimler#

Linux, macOS veya Windows üzerinde Node.js 18 veya üstü; bağımsız bir ikili dosyayla hiçbir şey. ClamAVAçık kaynaklı bir virüsten koruma motoru. Arka plan hizmeti clamd, bir soket üzerinden gönderilen dosyaları tarar. ve Ollama isteğe bağlıdır ve kendi hizmetleri olarak çalışır.

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