# การทดสอบและคะแนน

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

เปลี่ยนเกณฑ์ด้วย `threshold` และ `rejectThreshold` เปลี่ยนคะแนนด้วย `scores` โดยระบุด้วยคีย์การตั้งค่า (`scores: {deceptiveLink: 4}`) หรือด้วยชื่อการทดสอบ ซึ่งจะกำหนดคะแนนของการทดสอบนั้นตายตัว (`scores: {FROM_NAME_BRAND: 4}`)


## ตัวจำแนก

| การทดสอบ                   | คะแนน          | ความหมาย                                                                                                                                                                                                                                                                                                                                    |
| -------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BAYES_00` ถึง `BAYES_999` | -2.5 ถึง +6.25 | ความน่าจะเป็นของสแปมจากตัวจำแนก บนสเกล log-odds: 2.4 คะแนนที่ 90% 5 คะแนนที่ 99% และ 6.25 คะแนนที่ 99.9% ตัวจำแนกจึงตีว่าเป็นสแปมด้วยตัวเองก็ต่อเมื่อมั่นใจอย่างน้อย 99% ชื่อบอกช่วงค่า: `BAYES_999` คือ 99.9% ขึ้นไป `BAYES_99` คือ 99% ถึง 99.9% `BAYES_50` คือ 40% ถึง 60% คีย์การตั้งค่า `bayesHam` และ `bayesSpam` กำหนดค่าทั้งสองปลาย |


## ฟิชชิงและลิงก์

| การทดสอบ                    | คะแนน | คีย์การตั้งค่า      | ความหมาย                                                               |
| --------------------------- | ----: | ------------------- | ---------------------------------------------------------------------- |
| `PHISHING_LOOKALIKE_DOMAIN` |     5 | `homograph`         | โดเมนของลิงก์เลียนแบบแบรนด์ด้วยอักขระที่หน้าตาคล้ายกันหรือสลับตัวอักษร |
| `MIXED_SCRIPT_DOMAIN`       |     3 | `mixedScriptDomain` | label ของโดเมนใช้ตัวอักษรหลายระบบปนกัน                                 |
| `BRAND_IN_DOMAIN`           |   1.5 | `brandInDomain`     | ชื่อแบรนด์อยู่ในโดเมนของผู้อื่น                                        |
| `TYPO_DOMAIN`               |     1 | `typoDomain`        | ต่างจากโดเมนของแบรนด์หนึ่งตัวอักษร                                     |
| `DECEPTIVE_LINK`            |     3 | `deceptiveLink`     | ลิงก์แสดงที่อยู่หนึ่งแต่ไปยังอีกที่อยู่หนึ่ง                           |
| `MALICIOUS_DOMAIN`          |     6 | `maliciousDomain`   | resolver กันมัลแวร์ของ Cloudflare บล็อกโดเมนที่ลิงก์ไป                 |
| `ADULT_DOMAIN`              |     2 | `adultDomain`       | resolver สำหรับครอบครัวของ Cloudflare บล็อกโดเมนที่ลิงก์ไป             |
| `URIBL_<LIST>`              |     5 | `uriblListed`       | โดเมนที่ลิงก์ไปอยู่ใน domain blocklist เช่น `URIBL_DBL`                |

โดเมนที่เพียงถูกกล่าวถึงในข้อความโดยไม่ได้ลิงก์ไปก็ถูกตรวจหาการเลียนแบบด้วย แต่จะนับเฉพาะเมื่อเลียนแบบแบรนด์อย่างชัดเจน: ใช้อักขระที่หน้าตาคล้ายกัน หรือสลับตัวอักษรสำหรับแบรนด์ที่มีห้าตัวอักษรขึ้นไป เพราะคำตอบกลับหรือลายเซ็นอาจกล่าวถึงเว็บไซต์ใดก็ได้ และบริษัทอาจมีชื่อสั้นที่ต่างจากชื่อแบรนด์เพียงหนึ่งอักขระ


## ไฟล์แนบ

| การทดสอบ                |    คะแนน | คีย์การตั้งค่า                           | ความหมาย                                              |
| ----------------------- | -------: | ---------------------------------------- | ----------------------------------------------------- |
| `EXECUTABLE_ATTACHMENT` |       10 | `executable`                             | โปรแกรมหรือสคริปต์                                    |
| `DISGUISED_EXECUTABLE`  |       12 | `disguisedExecutable`                    | โปรแกรมที่ตั้งชื่อให้ดูเหมือนเอกสารหรือรูปภาพ         |
| `DOUBLE_EXTENSION`      |        6 | `doubleExtension`                        | ชื่อไฟล์อย่าง `invoice.pdf.exe`                       |
| `RTL_OVERRIDE_FILENAME` |        6 | `rtlOverride`                            | อักขระ right-to-left override ซ่อนนามสกุลจริง         |
| `EXECUTABLE_IN_ARCHIVE` |        8 | `executableInArchive`                    | โปรแกรมในไฟล์ ZIP                                     |
| `ENCRYPTED_ARCHIVE`     |        2 | `encryptedArchive`                       | ไฟล์บีบอัดที่ตัวสแกนเปิดไม่ได้                        |
| `MACRO_ATTACHMENT`      |        4 | `macro`                                  | ไฟล์ Office ที่มีมาโคร                                |
| `PDF_ACTIVE_CONTENT`    |        3 | `pdfActive`                              | PDF ที่มี JavaScript, launch action หรือไฟล์ที่ฝังไว้ |
| `RTF_EMBEDDED_OBJECT`   |        4 | `rtfObject`                              | ไฟล์ RTF ที่มีออบเจ็กต์ฝังอยู่                        |
| `HTML_ATTACHMENT`       | 1 หรือ 3 | `htmlAttachment`, `activeHtmlAttachment` | ไฟล์ HTML ได้ 3 คะแนนเมื่อมีสคริปต์หรือฟอร์ม          |
| `VIRUS`                 |      100 | `virus`                                  | ClamAV พบไวรัส                                        |


## กฎ

| การทดสอบ                  | คะแนน | ความหมาย                                                                                              |
| ------------------------- | ----: | ----------------------------------------------------------------------------------------------------- |
| `GTUBE`                   |  1000 | สตริงทดสอบ GTUBE                                                                                      |
| `SEXTORTION_SUBJECT`      |     6 | หัวเรื่องที่การหลอกลวงแบบ sextortion และการยึดบัญชีใช้                                                |
| `PAYPAL_INVOICE`          |     6 | ใบแจ้งหนี้หรือคำขอเงินของ PayPal ซึ่งเป็นช่องทางที่ถูกใช้หลอกลวง                                      |
| `MICROSOFT_SPAM_VERDICT`  |     5 | Microsoft ทำเครื่องหมายข้อความว่าเป็นสแปมก่อนส่งต่อ (เชื่อถือเฉพาะเมื่อมาจากเซิร์ฟเวอร์ของ Microsoft) |
| `MICROSOFT_HIGH_SCL`      |     3 | Microsoft ให้ระดับความมั่นใจว่าเป็นสแปมสูง (เงื่อนไขเดียวกัน)                                         |
| `PROMPT_INJECTION`        |     3 | ข้อความที่เขียนถึงตัวกรอง AI                                                                          |
| `SELF_SPOOF`              |     3 | อ้างว่ามาจากโดเมนของผู้รับเองและไม่ผ่านการยืนยันตัวตน                                                 |
| `FROM_NAME_OTHER_ADDRESS` |   2.5 | ชื่อที่แสดงมีที่อยู่อีเมลอื่นอยู่ข้างใน                                                               |
| `FROM_NAME_BRAND`         |     2 | ชื่อที่แสดงอ้างว่าเป็นแบรนด์ที่ที่อยู่อีเมลไม่ได้เป็นของแบรนด์นั้น                                    |
| `DATE_IN_FUTURE`          |     1 | ลงวันที่ล่วงหน้าเกินหนึ่งวัน                                                                          |
| `MISSING_DATE`            |   0.5 | ไม่มีส่วนหัว Date                                                                                     |
| `MISSING_MESSAGE_ID`      |   0.5 | ไม่มีส่วนหัว Message-ID                                                                               |

กฎที่มีคะแนนอย่างน้อยเท่าเกณฑ์สแปมจะปรากฏใน `results.arbitrary` ด้วย เหมือนในเวอร์ชันก่อน ๆ


## การอำพรางและภาษา

| การทดสอบ               | คะแนน | คีย์การตั้งค่า        | ความหมาย                                                        |
| ---------------------- | ----: | --------------------- | --------------------------------------------------------------- |
| `INVISIBLE_CHARACTERS` |     2 | `invisibleCharacters` | อักขระที่มองไม่เห็นตั้งแต่สามตัวขึ้นไปในข้อความ                 |
| `MIXED_SCRIPT_WORDS`   |   2.5 | `mixedScriptWords`    | คำตั้งแต่สองคำขึ้นไปใช้ตัวอักษรจากหลายระบบอักษรปนกัน            |
| `STYLED_LETTERS`       |   1.5 | `styledLetters`       | ตัวอักษรทางคณิตศาสตร์หรือตัวอักษรในกรอบที่ปลอมเป็นข้อความธรรมดา |
| `LANGUAGE_NOT_ALLOWED` |     3 | `languageNotAllowed`  | ไม่อยู่ใน `allowedLanguages`                                    |


## การยืนยันตัวตน

ต้องมีที่อยู่ IP ของไคลเอนต์และ `authentication: true`

| การทดสอบ       | คะแนน | คีย์การตั้งค่า (ใน `authentication.weights`) |
| -------------- | ----: | -------------------------------------------- |
| `SPF_PASS`     |  -0.5 | `spfPass`                                    |
| `SPF_FAIL`     |     2 | `spfFail`                                    |
| `SPF_SOFTFAIL` |     1 | `spfSoftfail`                                |
| `DKIM_PASS`    |  -0.5 | `dkimPass`                                   |
| `DKIM_FAIL`    |     1 | `dkimFail`                                   |
| `DMARC_PASS`   |  -1.5 | `dmarcPass`                                  |
| `DMARC_FAIL`   |   3.5 | `dmarcFail`                                  |
| `ARC_PASS`     |  -0.5 | `arcPass`                                    |
| `ARC_FAIL`     |     1 | `arcFail`                                    |


## ชื่อเสียงและ blocklist

| การทดสอบ       | คะแนน | คีย์การตั้งค่า | ความหมาย                                                     |
| -------------- | ----: | -------------- | ------------------------------------------------------------ |
| `DENYLISTED`   |   100 | `denylisted`   | ที่อยู่ IP โดเมน หรือที่อยู่อีเมลของผู้ส่งอยู่ในรายการปฏิเสธ |
| `ALLOWLISTED`  |   -20 | `allowlisted`  | อยู่ในรายการอนุญาต                                           |
| `TRUTH_SOURCE` |    -5 | `truthSource`  | บริการด้านชื่อเสียงระบุว่าผู้ส่งน่าเชื่อถือ                  |
| `RBL_<LIST>`   |     4 | `rblListed`    | ที่อยู่ IP ของไคลเอนต์อยู่ใน blocklist เช่น `RBL_ZEN`        |


## โมเดลภาษาและโมเดลเสริม

| การทดสอบ                                              | คะแนน     | คีย์การตั้งค่า | ความหมาย                                             |
| ----------------------------------------------------- | --------- | -------------- | ---------------------------------------------------- |
| `LLM_SPAM`, `LLM_PHISHING`, `LLM_SCAM`, `LLM_MALWARE` | สูงสุด +6 | `llmSpam`      | ผลตัดสินของโมเดล คูณด้วยระดับความมั่นใจ              |
| `LLM_HAM`                                             | ต่ำสุด -3 | `llmHam`       | เช่นเดียวกัน                                         |
| `TOXIC_CONTENT`                                       | 3         | `toxicity`     | โมเดลตรวจเนื้อหาเป็นพิษที่คุณจัดหาเองตรวจพบในข้อความ |
| `NSFW_IMAGE`                                          | 3         | `nsfw`         | โมเดลรูปภาพที่คุณจัดหาเองตรวจพบในรูปภาพ              |
