مرشِّح بريد مزعج مستضاف ذاتيًا

يعمل Spam Scanner على خادمك ويُبقي البريد هناك. نموذج المصنِّف داخل الحزمة، ولا توجد قياسات عن بُعد ولا تحقق من التحديثات، وافتراضيًا لا يرسل سوى استعلام DNS عن اسم المضيف في كل رابط.

ما الذي يغادر الخادم#

افتراضيًا، أسماء المضيفين في روابط الرسالة فقط. يُبحث عنها لدى محلِّلات Cloudflare المرشِّحة (1.1.1.2 و1.1.1.3) باستعلامات DNS عادية، ولا يُرسل أي جزء من الرسالة أو عناوينها. ويُوقف --no-cloudflare هذا أيضًا.

كل فحص آخر يستخدم الشبكة يبقى متوقفًا حتى تشغّله:

الفحصيُشغَّل بـما الذي يرسله
SPF, DKIM, DMARC, ARC--authاستعلامات DNS عن سجلات المرسل
قوائم حظر DNS--dnsbl, --uriblعنوان IP للعميل ونطاقات الروابط، كاستعلامات DNS
ClamAV--clamavالمرفقات، إلى clamd الخاص بك
نموذج لغوي--llmملخّص للرسالة، إلى الخادم الذي تحدده

لا تُسجَّل عمليات الفحص ولا تُحفظ. الأمان والخصوصية

التثبيت على خادم#

Shell
npm install --global spamscanner

أو الملف التنفيذي المستقل، مع Node.js والنموذج مدمجين:

Shell
curl -fsSL https://github.com/spamscanner/spamscanner/releases/latest/download/install.sh | bash

يتحقق سكربت التثبيت من الملف التنفيذي مقابل ملف SHA256SUMS الخاص بالإصدار قبل تثبيته، ولكل ملف تنفيذي شهادة موقَّعة بمصدر البناء يتحقق منها gh attestation verify. تتوفر ملفات لـ Linux (x64 وarm64) وmacOS وWindows. تحتاج ملفات Linux إلى glibc، لذا ثبّت عبر npm على Alpine. البدء

لا يوجد تحقق من التحديثات. للتحديث، شغّل أمر التثبيت مرة أخرى: كلا الأمرين يثبّت أحدث إصدار.

التشغيل كخدمة#

تستمع خوادم milterمرشِّح البريد: بروتوكول من Sendmail، يستخدمه Postfix أيضًا، يتيح لبرنامج منفصل فحص كل رسالة أثناء جلسة SMTP. وHTTP وTCP وspamd على 127.0.0.1 ما لم يحدد --host غير ذلك. شغّلها بمستخدم بلا صلاحيات، مثلًا تحت systemd:

INI
[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=yes

الوحدة الكاملة وإعدادها في دليل Postfix. لا يدعم أي من الخوادم TLS، فللوصول إلى أحدها من جهاز آخر استخدم شبكة خاصة أو نفق SSH أو وكيلًا عكسيًا مع TLS.

ربط خادم بريدك#

خادم البريدالأمرالمنفذ
Postfix أو Sendmailspamscanner milter7831
Postfix دون رفض أي بريد أبدًاspamscanner filter، مرشِّح محتوىلا يوجد
Exim أو Haraka أو spamcspamscanner spamd783
أي شيء يتحدث HTTPspamscanner http7832
عميل TCP بسيطspamscanner server7830
خادم بريد مكتوب بـ Node.jsimport SpamScanner from 'spamscanner'لا يوجد

يمكن للخوادم إضافة الترويسات X-Spam-Flag وX-Spam-Score وX-Spam-Status إلى الرسالة، وتعيد المكتبة الدرجة وكل اختبار انطبق. الأدلة: مرشِّح بريد مزعج لـ Postfix، وخوادم بريد أخرى، وواجهة HTTP.

إبقاء النماذج اللغوية محلية#

النموذج اللغوي اختياري ولا يقرأ إلا الحالات الملتبسة: البريد المزعج الواضح والـ hamالبريد المرغوب: عكس البريد المزعج. الواضح لا يصلان إليه أبدًا. مع Ollamaبرنامج ينزّل النماذج اللغوية المفتوحة ويشغّلها على جهازك، مع واجهة HTTP API. يعمل على الخادم نفسه، فلا تغادره أي رسالة:

Shell
ollama pull qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4b

يعمل qwen3.5:4b على معالج CPU. أما مع مزوّد مستضاف فتُزال البيانات الشخصية من الرسالة قبل إرسالها. النماذج اللغوية

تدريبه على بريدك#

النموذج المرفق مدرَّب على مجموعات بيانات عامة. النموذج المدرَّب على البريد الذي يستقبله خادمك أفضل أداءً، ويبقى على ذلك الخادم:

Shell
spamscanner train --spam ~/Maildir/.Junk --ham ~/Maildir/cur --out /var/lib/spamscanner/model.json
SPAMSCANNER_MODEL=/var/lib/spamscanner/model.json spamscanner milter

يحتوي ملف النموذج على أعداد مجزّأة للسمات، لا على كلمات أو نصوص رسائل. التدريب

المتطلبات#

Node.js 18 أو أحدث على Linux أو macOS أو Windows، أو لا شيء مع ملف تنفيذي مستقل. ClamAVمحرك مفتوح المصدر لمكافحة الفيروسات. خدمته الخلفية clamd تفحص الملفات المرسلة عبر مقبس. وOllama اختياريان ويعملان كخدمتين مستقلتين.

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