ตัวกรองสแปมที่อ่านทุกภาษาและอธิบายทุกการตัดสิน

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. ตรวจ

    การตรวจด้วยตัวจำแนก ลิงก์ ไฟล์แนบ การยืนยันตัวตน blocklist และกฎ ทำงานพร้อมกัน แต่ละรายการมีเวลาหมดเวลาของตัวเอง

  3. คะแนน

    แต่ละการทดสอบจะเพิ่มหรือลดคะแนน ที่ 5 คะแนนข้อความถือเป็นสแปม ที่ 15 คะแนนเซิร์ฟเวอร์อีเมลควรปฏิเสธข้อความนั้น

  4. ถาม

    กรณีที่ตัดสินยากส่งไปให้โมเดลภาษาได้ ซึ่งจะเพิ่มได้สูงสุด 6 คะแนนหรือลดได้สูงสุด 3 คะแนน

  • ต่ำกว่า 5รับ
  • 5 ถึง 15ติดป้ายสแปม
  • 15 ขึ้นไปปฏิเสธ

ดูภายใน 1:58

ข้อความได้คะแนนอย่างไร อ่านแต่ละภาษาอย่างไร ถามโมเดลภาษาเมื่อใด และเชื่อมต่อกับ Postfix, Exim, Haraka และ Node.js อย่างไร

บรรยายเป็นภาษาอังกฤษ พร้อมคำบรรยายภาษาอังกฤษ

เฟรมชื่อเรื่องของวิดีโอ: โลโก้ Spam Scanner

สิ่งที่ตรวจ

คำเป็นเพียงสัญญาณหนึ่ง ลิงก์ ผู้ส่ง ไฟล์แนบ และการยืนยันตัวตนบอกได้มากพอกัน และไม่มีสิ่งใดขึ้นกับภาษาของข้อความ

  • ตัวจำแนกสำหรับทุกระบบอักษร

    คำ คู่คำ ลิงก์ ผู้ส่ง HTML และไฟล์แนบ นับและรวมกันแบบที่ SpamBayes ทำ พร้อมผล "ไม่แน่ใจ" อย่างตรงไปตรงมาเมื่อเบาะแสขัดแย้งกัน

    ตัดสินอย่างไร
  • ทุกภาษา อย่างรอบคอบ

    การตัดคำตาม Unicode สำหรับภาษาจีน ญี่ปุ่น และไทย การแปลงการอำพรางกลับ และไม่หักคะแนนภาษาที่โมเดลเคยเห็น ham น้อย

    ภาษา
  • ฟิชชิง

    โดเมนเลียนแบบที่ใช้อักษรซีริลลิกหรือสลับตัวอักษร ลิงก์ที่ข้อความแสดงที่อยู่อื่น ชื่อแบรนด์ในชื่อที่แสดง และ resolver กันมัลแวร์ของ Cloudflare

    การตรวจฟิชชิง
  • ไฟล์แนบ

    ไฟล์โปรแกรมที่ตรวจพบจากไบต์ของไฟล์ แม้ถูกเปลี่ยนชื่อเป็น .pdf, นามสกุลซ้อน, โปรแกรมในไฟล์ ZIP, มาโครของ Office, PDF ที่มีเนื้อหาทำงานได้, ClamAV

    การตรวจไฟล์แนบ
  • การยืนยันตัวตน

    SPF, DKIM, DMARC และ ARC, DNS blocklist, รายการอนุญาตและรายการปฏิเสธ และกฎสำหรับอีเมลที่ปลอมเป็นโดเมนของคุณเอง

    การยืนยันตัวตน
  • โมเดลภาษา

    กรณีที่ตัดสินยากจะส่งไปให้โมเดล: 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 จะได้คะแนนเป็นสแปม และโมเดลจะได้รับแจ้งว่าข้อความเป็นเพียงข้อมูล การทดสอบแบบ end-to-end ตรวจเรื่องนี้กับโมเดลจริงผ่าน 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 หรือชุดข้อมูล วัดผล และสอนจากปุ่ม "รายงานสแปม"

การฝึกโมเดล

ข้อความที่กันไว้ทดสอบข้อความPrecisionRecallผลบวกลวง
อังกฤษ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 บริการอีเมลที่ให้ความสำคัญกับความเป็นส่วนตัว