مرشِّح بريد مزعج يقرأ كل لغة ويشرح كل قرار.

يلتقط Spam Scanner البريد المزعج والتصيّد الاحتيالي والاحتيال والبرمجيات الخبيثة لـ Node.js وسطر الأوامر وخوادم البريد مثل Postfix وExim وHaraka. كل نتيجة تسرد الاختبارات التي انطبقت وسببها.

npm install -g spamscanner
  • Node.js 18+
  • Milter وspamd وHTTP
  • Ollama, Claude, ChatGPT
  • بلا قياس عن بُعد
$ spamscanner scan message.eml
SPAM  score 16.3 (spam at 5.0, reject at 15.0)  action: reject  language: en
   +6.3  BAYES_999                    Classifier spam probability 99.9%
   +5.0  PHISHING_LOOKALIKE_DOMAIN    "paypa1-secure.top" imitates paypal by swapping characters
   +3.0  DECEPTIVE_LINK               A link shows "https://www.paypal.com/signin" but goes to paypa1-secure.top
   +2.0  FROM_NAME_BRAND              Display name says "paypal" but the message is from paypa1-secure.top
$ echo $?
1

كيف يُحكم على الرسالة

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

  1. اقرأ

    تُحلَّل الرسالة ويُوحَّد نصها: تُلغى الحروف المزخرفة والمحارف غير المرئية والأبجديات المشابهة.

  2. فحص

    تعمل فحوص المصنِّف والروابط والمرفقات والمصادقة وقوائم الحظر والقواعد في الوقت نفسه، ولكل منها مهلة زمنية.

  3. الدرجة

    كل اختبار يضيف نقاطًا أو يحذفها. عند 5 تكون الرسالة مزعجة؛ وعند 15 ينبغي لخادم البريد رفضها.

  4. سؤال

    يمكن إرسال الحالات المتقاربة إلى نموذج لغوي، يضيف حتى 6 نقاط أو يحذف حتى 3.

  • أقل من 5قبول
  • من 5 إلى 15وسم كمزعج
  • 15 فأكثررفض

شاهده في 1:58

كيف تُحسب درجة الرسالة، وكيف تُقرأ كل لغة، ومتى يُسأل نموذج لغوي، وكيف يندمج مع Postfix وExim وHaraka وNode.js.

بتعليق صوتي بالإنجليزية، مع ترجمة نصية بالإنجليزية.

إطار عنوان الفيديو: شعار Spam Scanner.

ما الذي يفحصه

الكلمات إشارة واحدة. الروابط والمرسلون والمرفقات والمصادقة تقول بالقدر نفسه، ولا يعتمد أي منها على لغة الرسالة.

  • مصنِّف لكل نظام كتابة

    الكلمات وأزواج الكلمات والروابط والمرسلون وHTML والمرفقات، تُعدّ وتُجمع بطريقة SpamBayes، مع «غير متأكد» صريح عندما تتعارض القرائن.

    كيف يقرر
  • كل لغة، بعناية

    تقسيم الكلمات وفق Unicode للصينية واليابانية والتايلاندية، وإلغاء التنكّر، ولا عقوبة على لغة لم يرَ فيها النموذج إلا القليل من البريد المرغوب.

    اللغات
  • التصيّد الاحتيالي

    نطاقات مشابهة بحروف سيريلية أو مبدّلة، وروابط يُظهر نصها عنوانًا آخر، وعلامات تجارية في أسماء العرض، ومحلِّل البرمجيات الخبيثة من Cloudflare.

    فحوص التصيّد الاحتيالي
  • المرفقات

    ملفات تنفيذية تُكتشف من بايتاتها، حتى لو أُعيدت تسميتها إلى .pdf؛ والامتدادات المزدوجة؛ والبرامج داخل ملفات ZIP؛ ووحدات الماكرو في Office؛ وملفات PDF النشطة؛ وClamAV.

    فحوص المرفقات
  • المصادقة

    SPF وDKIM وDMARC وARC، وقوائم حظر DNS، وقوائم السماح والمنع، وقاعدة للبريد الذي ينتحل نطاقك.

    المصادقة
  • النماذج اللغوية

    تذهب الحالات المتقاربة إلى نموذج: Ollama على جهازك، أو Claude وChatGPT وGemini وأي خادم متوافق مع OpenAI.

    النماذج اللغوية

كل اختبار ونقاطهكيف يعمل

كل لغة، دون تخمين

تُستخرج الكلمات وفق قواعد Unicode، فتعمل اللغات المكتوبة بلا مسافات، ويُلغى التنكّر قبل العدّ. هذه هي الكلمات التي يعدّها المصنِّف، وقد حُسبت عند بناء هذه الصفحة.

اللغة التي لم يرَ فيها النموذج المرفق إلا القليل من البريد المرغوب تحصل على «غير متأكد» بدل «مزعج»، فلا يُوسم البريد العادي بالعربية أو الكورية بسبب نظام كتابته. اللغات

إنجليزية متنكّرة

Claim your fr␣ee prіze: V1agra 𝐅𝐑𝐄𝐄

  • claim
  • your
  • free
  • prize
  • viagra
  • free

مسافة صفرية العرض، وحرف і سيريلي، ورقم مكان حرف، وحروف رياضية عريضة

الصينية، بلا مسافات

恭喜您获得一百万元大奖

  • 恭喜
  • 您
  • 获得
  • 一
  • 百万
  • 元
  • 大奖

مقسّم باستخدام قاموس

التايلاندية، بلا مسافات

ยินดีด้วยคุณได้รับรางวัลหนึ่งล้านบาท

  • ยินดี
  • ด้วย
  • คุณ
  • ได้
  • รับ
  • รางวัล
  • หนึ่ง
  • ล้าน
  • บาท

مقسّم باستخدام قاموس

الروسية

Поздравляем! Вы выиграли миллион

  • поздравляем
  • вы
  • выиграли
  • миллион

تحويل إلى أحرف صغيرة وفق قواعد Unicode

يندمج مع خادم بريدك

milter لـ Postfix وSendmail، وخادم spamd متوافق مع SpamAssassin لـ spamc وExim وHaraka، ومرشِّح محتوى، وواجهة HTTP API، وخادم TCP، والمكتبة.

كلها تضيف ترويسات X-Spam-Flag, X-Spam-Score, X-Spam-Status، وتحذف أي ترويسات زوّرها المرسل.

Shell
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"

# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_default_action = accept

يفحص الـ milter البريد أثناء جلسة SMTP، فيُرفض البريد المزعج الذي يبلغ عتبة الرفض قبل قبوله. دليل Postfix

نموذج لغوي للحالات المتقاربة

البريد المزعج الواضح والبريد المرغوب الواضح لا يصلان إليه أبدًا. عندما تكون الدرجة متقاربة أو يكون المصنِّف غير متأكد، يقرأ نموذج الرسالة ويجيب: مزعج، أو تصيّد احتيالي، أو احتيال، أو برمجيات خبيثة، أو مرغوب. شغّل نموذجًا على جهازك، أو استخدم نموذجًا مستضافًا، على أي عنوان URL ومنفذ وطريقة مصادقة.

التعليمات المخفية في الرسالة والموجّهة إلى مرشِّحات الذكاء الاصطناعي تُحسب بريدًا مزعجًا، ويُبلَّغ النموذج بأن الرسالة بيانات. تتحقق الاختبارات الشاملة من ذلك مقابل نموذج حقيقي عبر Ollama.

  • Ollama
  • LM Studio
  • llama.cpp server
  • vLLM
  • LocalAI
  • Jan
  • OpenAI
  • Anthropic (Claude)
  • Google Gemini
  • Mistral AI
  • Groq
  • OpenRouter
  • DeepSeek
  • xAI
  • Together AI
  • Fireworks AI
  • Cerebras
  • Hugging Face Inference Providers
  • Azure OpenAI
  • Cloudflare Clef
  • Cloudflare Clef Flash
  • TypeSafe Jev
  • TypeSafe Jev on OpenRouter
  • Any decision model server
Shell
ollama pull qwen3.5:4b
spamscanner llm-test --llm ollama --llm-model qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4b

المحاط بإطار: يعمل على جهازك. تُحذف البيانات الشخصية قبل إرسال الرسالة إلى مزوّد مستضاف.

OllamaHugging Faceالترخيصالحجم
qwen3.5:0.8bQwen/Qwen3.5-0.8BApache-2.01.3 GB
gemma4:e2bgoogle/gemma-4-E2B-itApache-2.04.6 GB
qwen3.5:4bQwen/Qwen3.5-4BApache-2.03.3 GB
qwen3.5:9bQwen/Qwen3.5-9BApache-2.06.6 GB
gpt-oss-safeguard:20bopenai/gpt-oss-safeguard-20bApache-2.014 GB

نماذج مفتوحة موصى بها. كل التوصيات

مُقاس، وقابل للتدريب

النموذج المرفق مدرَّب على مجموعات بيانات عامة ومختبَر على رسائل لم يرها. النموذج المدرَّب على بريدك أفضل أداءً: درّبه من ملفات mbox أو مجلدات Maildir أو مجموعات البيانات، وقِس أداءه، وعلّمه من أزرار «الإبلاغ عن بريد مزعج».

التدريب

الرسائل المحجوزة للاختبارالرسائلالدقةالاستدعاءالإيجابيات الكاذبة
الإنجليزية6,564100.0‎%‎97.1‎%‎0.0‎%‎
الروسية1,682100.0‎%‎97.4‎%‎0.0‎%‎
الإيطالية1,38998.1‎%‎85.3‎%‎1.8‎%‎
الألمانية1,30997.7‎%‎76.1‎%‎2.2‎%‎
الإسبانية1,28197.5‎%‎82.6‎%‎2.6‎%‎
الكل13,84099.2‎%‎85.1‎%‎0.6‎%‎

المصنِّف وحده، على كل رسالة عاشرة من بيانات تدريبه العامة، محجوزة للاختبار. الرسائل غير المؤكدة تُحسب فائتة. الألمانية والإيطالية والإسبانية مأخوذة من مجموعات بيانات اصطناعية بتصنيفات غير دقيقة. عن النموذج المرفق

صُنع لـ Forward Email

لا تحتفظ Forward Email بأي سجلات لمحتوى الرسائل، ولذلك لم يكن بإمكانها إرسال البريد إلى خدمة ترشيح خارجية. يعمل Spam Scanner على خوادمك، ولا يرسل شيئًا إلى أي مكان ما لم يُضبط على ذلك، ويشرح كل قرار دون أن يقرأ أي شخص البريد. Forward Email والترقية

مشروع من Forward Email، خدمة البريد الإلكتروني التي تركّز على الخصوصية.