# الاختبارات والدرجات

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

غيّر العتبتين بـ `threshold` و`rejectThreshold`. وغيّر النقاط بـ `scores`، إما بمفتاح الإعداد (`scores: {deceptiveLink: 4}`) أو باسم الاختبار، الذي يثبّت نقاط ذلك الاختبار (`scores: {FROM_NAME_BRAND: 4}`).


## المصنِّف

| الاختبار                      | النقاط            | المعنى                                                                                                                                                                                                                                                                                                                                                                                   |
| ----------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| من `BAYES_00` إلى `BAYES_999` | من -2.5 إلى +6.25 | احتمال أن تكون الرسالة مزعجة بحسب المصنِّف، على مقياس لوغاريتم نسبة الأرجحية: 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` | تسمية في النطاق تخلط بين الأبجديات                         |
| `BRAND_IN_DOMAIN`           |    1.5 | `brandInDomain`     | اسم علامة تجارية داخل نطاق يملكه طرف آخر                   |
| `TYPO_DOMAIN`               |      1 | `typoDomain`        | يختلف بحرف واحد عن نطاق علامة تجارية                       |
| `DECEPTIVE_LINK`            |      3 | `deceptiveLink`     | رابط يُظهر عنوانًا ويذهب إلى عنوان آخر                     |
| `MALICIOUS_DOMAIN`          |      6 | `maliciousDomain`   | محلِّل البرمجيات الخبيثة من Cloudflare يحظر نطاقًا مرتبطًا |
| `ADULT_DOMAIN`              |      2 | `adultDomain`       | المحلِّل العائلي من Cloudflare يحظر نطاقًا مرتبطًا         |
| `URIBL_<LIST>`              |      5 | `uriblListed`       | نطاق مرتبط موجود في قائمة حظر نطاقات، مثل `URIBL_DBL`      |

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


## المرفقات

| الاختبار                | النقاط | مفتاح الإعداد                            | المعنى                                                     |
| ----------------------- | -----: | ---------------------------------------- | ---------------------------------------------------------- |
| `EXECUTABLE_ATTACHMENT` |     10 | `executable`                             | برنامج أو سكربت                                            |
| `DISGUISED_EXECUTABLE`  |     12 | `disguisedExecutable`                    | برنامج مسمّى كمستند أو صورة                                |
| `DOUBLE_EXTENSION`      |      6 | `doubleExtension`                        | اسم مثل `invoice.pdf.exe`                                  |
| `RTL_OVERRIDE_FILENAME` |      6 | `rtlOverride`                            | محرف تجاوز من اليمين إلى اليسار يخفي الامتداد الحقيقي      |
| `EXECUTABLE_IN_ARCHIVE` |      8 | `executableInArchive`                    | برنامج داخل ملف ZIP                                        |
| `ENCRYPTED_ARCHIVE`     |      2 | `encryptedArchive`                       | أرشيف لا تستطيع الماسحات فتحه                              |
| `MACRO_ATTACHMENT`      |      4 | `macro`                                  | ملف Office يحتوي وحدات ماكرو                               |
| `PDF_ACTIVE_CONTENT`    |      3 | `pdfActive`                              | ملف PDF يحتوي JavaScript أو إجراءات تشغيل أو ملفات مضمَّنة |
| `RTF_EMBEDDED_OBJECT`   |      4 | `rtfObject`                              | ملف RTF يحتوي كائنات مضمَّنة                               |
| `HTML_ATTACHMENT`       | 1 أو 3 | `htmlAttachment`، `activeHtmlAttachment` | ملف HTML؛ و3 عندما يحتوي سكربتات أو نماذج                  |
| `VIRUS`                 |    100 | `virus`                                  | عثر ClamAV على فيروس                                       |


## القواعد

| الاختبار                  | النقاط | المعنى                                                                               |
| ------------------------- | -----: | ------------------------------------------------------------------------------------ |
| `GTUBE`                   |   1000 | سلسلة اختبار GTUBE                                                                   |
| `SEXTORTION_SUBJECT`      |      6 | عنوان تستخدمه احتيالات الابتزاز الجنسي والاستيلاء على الحسابات                       |
| `PAYPAL_INVOICE`          |      6 | فاتورة PayPal أو طلب مال، وهي قناة يُساء استخدامها في الاحتيال                       |
| `MICROSOFT_SPAM_VERDICT`  |      5 | وسمت Microsoft الرسالة بأنها مزعجة قبل ترحيلها (لا يُوثق بها إلا من خوادم Microsoft) |
| `MICROSOFT_HIGH_SCL`      |      3 | أعطتها Microsoft مستوى ثقة عاليًا بأنها مزعجة (بالشرط نفسه)                          |
| `PROMPT_INJECTION`        |      3 | نص موجّه إلى مرشِّح ذكاء اصطناعي                                                     |
| `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`                                   |


## السمعة وقوائم الحظر

| الاختبار       | النقاط | مفتاح الإعداد | المعنى                                                  |
| -------------- | -----: | ------------- | ------------------------------------------------------- |
| `DENYLISTED`   |    100 | `denylisted`  | عنوان IP للمرسل أو نطاقه أو عنوانه موجود في قائمة المنع |
| `ALLOWLISTED`  |    -20 | `allowlisted` | موجود في قائمة السماح                                   |
| `TRUTH_SOURCE` |     -5 | `truthSource` | خدمة سمعة تَسِم المرسل بأنه موثوق                       |
| `RBL_<LIST>`   |      4 | `rblListed`   | عنوان IP للعميل موجود في قائمة حظر، مثل `RBL_ZEN`       |


## النموذج اللغوي والنماذج الاختيارية

| الاختبار                                              | النقاط | مفتاح الإعداد | المعنى                               |
| ----------------------------------------------------- | ------ | ------------- | ------------------------------------ |
| `LLM_SPAM`، `LLM_PHISHING`، `LLM_SCAM`، `LLM_MALWARE` | حتى +6 | `llmSpam`     | حكم النموذج، مضروبًا في درجة ثقته    |
| `LLM_HAM`                                             | حتى -3 | `llmHam`      | بالطريقة نفسها                       |
| `TOXIC_CONTENT`                                       | 3      | `toxicity`    | وسم نموذج محتوى مسيء تزوّده أنت النص |
| `NSFW_IMAGE`                                          | 3      | `nsfw`        | وسم نموذج صور تزوّده أنت صورة        |
