مكتبة Node.js لترشيح البريد المزعج

Shell
npm install spamscanner
JavaScript
import 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#

JavaScript
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)، والاختبارات التي انطبقت، ولكل منها نقاط وسبب. تتضمن النتائج المفصلة احتمال المصنِّف وأقوى قرائنه، وكل نتيجة لفحوص التصيّد الاحتيالي والمرفقات، ونتائج المصادقة، واللغة.

علّمه#

JavaScript
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%.

مرجع API

عدّل هذه الصفحة على GitHub · Markdown ·