מסנן ספאם שקורא כל שפה ומסביר כל החלטה.

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 לסינית, יפנית ותאית, ביטול הסוואות, ובלי קנס לשפה שהמודל ראה בה מעט ham.

    שפות
  • פישינג

    דומיינים מתחזים עם אותיות קיריליות או אותיות מוחלפות, קישורים שהטקסט שלהם מציג כתובת אחרת, שמות מותגים בשמות תצוגה, ושרת ה-DNS לחסימת נוזקות של Cloudflare.

    בדיקות פישינג
  • קבצים מצורפים

    קבצי הרצה שמזוהים לפי הבתים שלהם, גם כששמם שונה ל-.pdf; סיומות כפולות; תוכנות בקובצי ZIP; פקודות מאקרו של Office; קובצי PDF פעילים; ClamAV.

    בדיקות קבצים מצורפים
  • אימות

    SPF, DKIM, DMARC ו-ARC, רשימות שחורות ב-DNS, רשימות היתר וחסימה, וכלל לדואר שמזייף את הדומיין שלכם.

    אימות
  • מודלי שפה

    מקרים גבוליים עוברים למודל: Ollama על המחשב שלכם, או Claude, ChatGPT, Gemini וכל שרת תואם OpenAI.

    מודלי שפה

כל בדיקה והנקודות שלהאיך זה עובד

כל שפה, בלי ניחושים

המילים מזוהות לפי כללי Unicode, כך ששפות שנכתבות בלי רווחים עובדות, והסוואות מבוטלות לפני הספירה. אלה המילים שהמסווג סופר, כפי שחושבו כשהדף הזה נבנה.

שפה שהמודל המצורף ראה בה מעט ham מקבלת „לא בטוח” במקום „ספאם”, כך שדואר רגיל בערבית או בקוריאנית לעולם לא מסומן בגלל הכתב שלו. שפות

אנגלית מוסווית

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

מודל שפה למקרים הגבוליים

ספאם ברור ו-ham ברור לא מגיעים אליו לעולם. כשהניקוד קרוב לסף או שהמסווג לא בטוח, מודל קורא את ההודעה ועונה ספאם, פישינג, הונאה, נוזקה או ham. אפשר להריץ מודל על המחשב שלכם או להשתמש במודל מתארח, בכל URL, פורט ושיטת אימות.

הוראות שמוסתרות בהודעה עבור מסנני AI מקבלות ניקוד של ספאם, והמודל מקבל הנחיה שההודעה היא נתונים. בדיקות הקצה-לקצה בודקות זאת מול מודל אמיתי דרך 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 או ממאגרי נתונים, למדוד אותו, וללמד אותו מכפתורי „דיווח על ספאם”.

אימון

הודעות שהוחזקו בצדהודעותדיוק (Precision)רגישות (Recall)חיוביות שגויות
אנגלית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, שירות הדואר האלקטרוני שמתמקד בפרטיות.