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:
| Denetim | Açmak için | Ne gönderir |
|---|---|---|
| SPF, DKIM, DMARC, ARC | --auth | Gö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 | --clamav | Ekleri, kendi clamd'nize |
| Bir dil modeli | --llm | İletinin bir özetini, belirttiğiniz sunucuya |
Taramalar kaydedilmez ve saklanmaz. Güvenlik ve gizlilik
Bir sunucuya kurun#
npm install --global spamscannerYa da Node.js ve modelin içinde olduğu bağımsız ikili dosya:
curl -fsSL https://github.com/spamscanner/spamscanner/releases/latest/download/install.sh | bashKurulum 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:
[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=yesTam 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 sunucusu | Komut | Bağlantı noktası |
|---|---|---|
| Postfix veya Sendmail | spamscanner milter | 7831 |
| Postfix, hiç posta reddetmeden | spamscanner filter, bir içerik filtresi | yok |
| Exim, Haraka veya spamc | spamscanner spamd | 783 |
| HTTP konuşan her şey | spamscanner http | 7832 |
| Basit bir TCP istemcisi | spamscanner server | 7830 |
| Node.js ile yazılmış bir posta sunucusu | import 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:
ollama pull qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4bqwen3.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:
spamscanner train --spam ~/Maildir/.Junk --ham ~/Maildir/cur --out /var/lib/spamscanner/model.json
SPAMSCANNER_MODEL=/var/lib/spamscanner/model.json spamscanner milterBir 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.