מסנן ספאם שקורא כל שפה ומסביר כל החלטה.
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
איך הודעה נשפטת
כל בדיקה מוסיפה או מורידה נקודות, והסכום הכולל מכריע. אפשר לשנות את הספים ואת הנקודות, ושום דבר אינו קופסה שחורה: התוצאה מציינת כל בדיקה בשמה.
קריאה
ההודעה מפוענחת והטקסט שלה מנורמל: אותיות מעוצבות, תווים בלתי נראים ואלפביתים דומים במראה מבוטלים.
בדיקה
המסווג ובדיקות הקישורים, הקבצים המצורפים, האימות, הרשימות השחורות והכללים רצים במקביל, כל אחד עם מגבלת זמן.
ניקוד
כל בדיקה מוסיפה או מורידה נקודות. ב-5 הודעה היא ספאם; ב-15 שרת דואר צריך לדחות אותה.
שאלה
מקרים גבוליים יכולים לעבור למודל שפה, שמוסיף עד 6 נקודות או מוריד עד 3.
- מתחת ל-5קבלה
- 5 עד 15סימון כספאם
- 15 ומעלהדחייה
מה הוא בודק
מילים הן סימן אחד. קישורים, שולחים, קבצים מצורפים ואימות מעידים לא פחות, ואף אחד מהם לא תלוי בשפת ההודעה.
מסווג לכל כתב
מילים, צמדי מילים, קישורים, שולחים, 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, ומסירים כותרות כאלה ששולח זייף.
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_default_action = acceptmilter בודק את הדואר במהלך שיחת ה-SMTP, כך שספאם שמגיע לסף הדחייה נדחה עוד לפני שהוא מתקבל. מדריך Postfix
spamscanner spamd --port 783 --auth
spamc -c < message.eml # prints 16.3/5.0 and exits 1שרת spamd תואם SpamAssassin: עוצרים את spamd, מפעילים את Spam Scanner על אותו פורט, ולקוחות SpamAssassin ממשיכים לעבוד. מדריך spamd
import SpamScanner from 'spamscanner';
const scanner = new SpamScanner({authentication: true});
const result = await scanner.scan(stream, {session});
if (result.action === 'reject') {
// refuse with a 4xx or 5xx reply
}הספרייה, עבור smtp-server, תוספים של Haraka או כל שירות שמטפל בדואר. תיעוד API
spamscanner http --port 7832 --token "$TOKEN"
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
--data-binary @message.eml "http://127.0.0.1:7832/scan?ip=203.0.113.5"לכל שפה ולכל שרת שיכולים לשלוח בקשת HTTP. מדריך HTTP API
מודל שפה למקרים הגבוליים
ספאם ברור ו-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
ollama pull qwen3.5:4b
spamscanner llm-test --llm ollama --llm-model qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4bעם מסגרת: רץ על המחשב שלכם. מידע אישי מוסר לפני שהודעה נשלחת לספק מתארח.
| Ollama | רישיון | גודל |
|---|---|---|
qwen3.5:0.8b | Apache-2.0 | 1.3 GB |
gemma4:e2b | Apache-2.0 | 4.6 GB |
qwen3.5:4b | Apache-2.0 | 3.3 GB |
qwen3.5:9b | Apache-2.0 | 6.6 GB |
gpt-oss-safeguard:20b | Apache-2.0 | 14 GB |
מודלים פתוחים מומלצים. כל ההמלצות
נמדד, וניתן לאימון
המודל המצורף אומן על מאגרי נתונים ציבוריים ונבדק על הודעות שלא ראה. מודל שמאומן על הדואר שלכם מצליח יותר: אפשר לאמן אותו מקובצי mbox, מתיקיות Maildir או ממאגרי נתונים, למדוד אותו, וללמד אותו מכפתורי „דיווח על ספאם”.
| הודעות שהוחזקו בצד | הודעות | דיוק (Precision) | רגישות (Recall) | חיוביות שגויות |
|---|---|---|---|---|
| אנגלית | 6,564 | 100.0% | 97.1% | 0.0% |
| רוסית | 1,682 | 100.0% | 97.4% | 0.0% |
| איטלקית | 1,389 | 98.1% | 85.3% | 1.8% |
| גרמנית | 1,309 | 97.7% | 76.1% | 2.2% |
| ספרדית | 1,281 | 97.5% | 82.6% | 2.6% |
| הכול | 13,840 | 99.2% | 85.1% | 0.6% |
המסווג לבדו, על כל הודעה עשירית מנתוני האימון הציבוריים שלו, שהוחזקה בצד. הודעות „לא בטוח” נספרות כהחטאות. גרמנית, איטלקית וספרדית מגיעות ממאגרי נתונים סינתטיים עם תוויות רועשות. על המודל המצורף
נבנה עבור Forward Email
Forward Email לא שומרת יומנים של תוכן ההודעות, ולכן לא יכלה לשלוח דואר לשירות סינון חיצוני. Spam Scanner רץ על השרתים שלכם, לא שולח שום דבר לשום מקום אלא אם הוגדר לכך, ומסביר כל החלטה בלי שאדם יקרא את הדואר. Forward Email ושדרוג
פרויקט של Forward Email, שירות הדואר האלקטרוני שמתמקד בפרטיות.
