مكتبة Node.js لترشيح البريد المزعج
npm install spamscannerimport SpamScanner from 'spamscanner';
const scanner = new SpamScanner();
const result = await scanner.scan(rawMessage);
if (result.isSpam) {
console.log(result.score, result.tests.map(test => test.name));
}تأخذ scan() قيمة Buffer أو سلسلة نصية أو Uint8Array أو تدفقًا قابلًا للقراءة، فيمكن تمرير تدفق SMTP من smtp-server مباشرة. يعمل CommonJS مع require('spamscanner')، وأنواع TypeScript مضمَّنة.
مع smtp-server#
import {SMTPServer} from 'smtp-server';
import SpamScanner from 'spamscanner';
const scanner = new SpamScanner({authentication: true});
const server = new SMTPServer({
async onData(stream, session, callback) {
const result = await scanner.scan(stream, {
session: {
remoteAddress: session.remoteAddress,
helo: session.hostNameAppearsAs,
envelope: session.envelope,
},
});
if (result.action === 'reject') {
return callback(Object.assign(new Error('Message rejected as spam'), {responseCode: 451}));
}
callback();
},
});ماذا تقول النتيجة#
لكل نتيجة درجة، وإجراء (accept أو tag أو reject)، والاختبارات التي انطبقت، ولكل منها نقاط وسبب. تتضمن النتائج المفصلة احتمال المصنِّف وأقوى قرائنه، وكل نتيجة لفحوص التصيّد الاحتيالي والمرفقات، ونتائج المصادقة، واللغة.
علّمه#
await scanner.learn(rawMessage, 'spam');
scanner.saveModel('./model.json');
const trained = new SpamScanner({classifier: './model.json'});المزيد#
- الخوادم مُصدَّرة أيضًا:
MilterServerوcreateHttpServerوcreateSpamdServer. - النماذج اللغوية:
new SpamScanner({llm: {provider: 'ollama', model: 'qwen3.5:4b'}}). - مُختبَر على Node.js 18 و20 و22 و24، بتغطية اختبارات 100%.