Une alternative à SpamAssassin qui parle spamd
Spam Scanner répond au protocole spamdLe démon de SpamAssassin. Son protocole est parlé par spamc, Exim, Haraka et d’autres clients SpamAssassin. de SpamAssassin : les logiciels écrits pour SpamAssassin l’utilisent donc sans modification, qu’il s’agisse de spamc, de la condition spam d’Exim, du plugin spamassassin de Haraka ou d’autres.
Le mettre à la place#
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-* headersIl répond à CHECK, SYMBOLS, REPORT, REPORT_IFSPAM, PROCESS, HEADERS, PING et, avec --allow-tell, à TELL pour l’apprentissage. Les tests de bout en bout du projet utilisent le propre spamc de SpamAssassin contre lui.
Ce qui ne change pas#
- Les en-têtes :
X-Spam-Flag,X-Spam-Score,X-Spam-LeveletX-Spam-Statusau format de SpamAssassin ; les règles Sieve, procmail et de logiciel de messagerie existantes continuent donc de fonctionner. - Un score avec un seuil de 5, composé de tests nommés dotés de points :
BAYES_99,RBL_ZEN,SPF_FAIL,DKIM_PASS, etc. - Les scores de chaque test sont modifiables par nom de test.
Ce qui diffère#
- Langues. Les mots sont segmentés selon les règles Unicode : le chinois, le japonais et le thaï sont lus comme des mots et non comme une seule longue chaîne, et les déguisements comme les caractères invisibles ou les lettres cyrilliques dans des mots latins sont d’abord neutralisés.
- Hameçonnage. Les domaines sosies, les liens trompeurs et les noms de marque dans les noms d’affichage sont vérifiés sans règles supplémentaires.
- Les pièces jointes sont identifiées par leurs octets : un exécutable renommé en
.pdfreste un exécutable. - Modèles de langage. Les cas limites peuvent être confiés à un modèle local via OllamaUn programme qui télécharge et exécute des modèles de langage ouverts sur votre propre machine, avec une API HTTP. ou à un modèle hébergé.
- Node.js. Un seul
npm install, ou un binaire autonome ; aucun module Perl ni aucune mise à jour de règles à gérer.
Spam Scanner n’exécute pas les fichiers de règles de SpamAssassin, et le format de sa base bayésienne lui est propre : entraînez-le à partir du même courrier avec 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