SpamAssassin-vaihtoehto, joka puhuu spamd-protokollaa
Spam Scanner vastaa SpamAssassinin spamd-protokollaan, joten SpamAssassinille kirjoitettu ohjelmisto käyttää sitä muuttamattomana: spamc, Eximin spam-ehto, Harakan spamassassin-laajennus ja muut.
Vaihda se tilalle#
sudo systemctl disable --now spamd # or spamassassin
npm install --global spamscanner
spamscanner spamd --port 783 --authspamc -c < message.eml # prints the score, exits 1 for spam
spamc -R < message.eml # the report, one line per test
spamc < message.eml # the message with X-Spam-* headersSe vastaa komentoihin CHECK, SYMBOLS, REPORT, REPORT_IFSPAM, PROCESS, HEADERS, PING ja valitsimella --allow-tell myös TELL oppimista varten. Projektin päästä päähän -testit ajavat SpamAssassinin omaa spamc:tä sitä vastaan.
Mikä pysyy samana#
- Otsakkeet:
X-Spam-Flag,X-Spam-Score,X-Spam-LeveljaX-Spam-StatusSpamAssassinin muodossa, joten olemassa olevat Sieve-, procmail- ja sähköpostiohjelmien säännöt toimivat edelleen. - Pistemäärä, jonka raja on 5 ja joka koostuu nimetyistä testeistä pisteineen:
BAYES_99,RBL_ZEN,SPF_FAIL,DKIM_PASSja niin edelleen. - Testikohtaisia pisteitä voi muuttaa testin nimen mukaan.
Mikä on erilaista#
- Kielet. Sanat pilkotaan Unicoden sääntöjen mukaan, joten kiina, japani ja thai luetaan sanoina eikä yhtenä pitkänä merkkijonona, ja naamioinnit, kuten näkymättömät merkit tai kyrilliset kirjaimet latinalaisissa sanoissa, puretaan ensin.
- Tietojenkalastelu. Samannäköiset verkkotunnukset, harhaanjohtavat linkit ja tuotemerkkien nimet näyttönimissä tarkistetaan ilman lisäsääntöjä.
- Liitteet tunnistetaan niiden tavuista: muotoon
.pdfnimetty suoritettava tiedosto on edelleen suoritettava tiedosto. - Kielimallit. Epäselvät tapaukset voidaan lähettää paikalliselle mallille Ollaman kautta tai palveluna tarjotulle mallille.
- Node.js. Yksi
npm installtai erillinen binääri; ei hallittavia Perl-moduuleja tai sääntöpäivityksiä.
Spam Scanner ei aja SpamAssassinin sääntötiedostoja, ja sen Bayes-tietokannan muoto on sen oma: kouluta se samasta postista komennolla spamscanner train.
Exim#
spamd_address = 127.0.0.1 783
# in the DATA ACL
warn spam = nobody:true
add_header = X-Spam-Score: $spam_score
defer spam = nobody:true
condition = ${if >={$spam_score_int}{150}}
message = Message rejected as spam