Email Spam Tester إجراء اختبار · للوكلاء · API · المدونة

كيف يعمل الاختبار

أرسل رسالة واحدة إلى عنوان مؤقت، وسيُجرى عليها 42 فحصًا. تتناول هذه الصفحة جميعها: ما الذي يفحصه كل منها، وما يخصمه من نتيجتك عند فشله، والقسم من المعيار الذي يستند إليه.

لا شيء هنا هو رأينا مصاغًا في صورة قاعدة. عندما يفرض فحص ما تنص عليه إحدى المواصفات، تُقتبس تحته الجملة الواردة في تلك المواصفة. وعندما يفرض بدلًا من ذلك متطلبًا من Google أو Yahoo، يوجد رابط إلى صفحتهما. وعندما يكون مبنيًا على تقديرنا الخاص، يُذكر ذلك.

محدّث:

الفحصالمجموعةدرجتناالدرجة التقليدية
سلسلة ARCالمصادقة−20
توقيع DKIMالمصادقة−18−1
محاذاة DKIMالمصادقة−10−1
نتيجة DMARCالمصادقة−140
معرّف المرسلالمصادقة−5−0.5
SPFالمصادقة−18−1
محاذاة SPFالمصادقة−5−0.5
حل اسم مضيف الإرسالالبنية التحتية والسمعة−5−3
قوائم الحظرالبنية التحتية والسمعة−25−3
اسم HELOالبنية التحتية والسمعة−50
سجل MXالبنية التحتية والسمعة−5−3
DNS العكسيالبنية التحتية والسمعة−12−1.5
تشفير النقلالبنية التحتية والسمعة−50
مُقيّم الذكاء الاصطناعيمحركات البريد العشوائي
الحكم المجمّعمحركات البريد العشوائي−250
Postmark SpamCheckمحركات البريد العشوائي
Rspamdمحركات البريد العشوائي
SpamAssassinمحركات البريد العشوائي0−3
النص البديل للصورالمحتوى−4−0.5
توفر الروابطالمحتوى−5−1
Script وiframeالمحتوى−10−1
التوازن بين النص وHTMLالمحتوى−3−0.3
جزآ النص وHTMLالمحتوى−50
حجم HTMLالمحتوى−3−0.3
حجم الصورالمحتوى−3−0.3
وجهات الروابط الظاهرةالمحتوى−30
سمعة الروابطالمحتوى−400
فحص المرفقاتالمحتوى−600
النص التمهيديالمحتوى−20
سطر الموضوعالمحتوى−30
الروابط المختصرةالمحتوى−5−0.5
نشر سياسة DMARCقواعد المرسلين بكميات كبيرة−60
List-Unsubscribeقواعد المرسلين بكميات كبيرة−10−1
إلغاء الاشتراك بنقرة واحدةقواعد المرسلين بكميات كبيرة−80
TLS للبريد بالجملةقواعد المرسلين بكميات كبيرة−50
BIMIالتوصيات00
عمر مفتاح DKIM وطولهالتوصيات00
تسليم تقارير DMARCالتوصيات00
DNSSECالتوصيات00
MTA-STSالتوصيات00
طول مسار الإرجاعالتوصيات00
تقارير TLSالتوصيات00

المصادقة

ما إذا كان الخادم المستلِم يستطيع إثبات أن الرسالة جاءت من المصدر الذي تدّعيه. هذا هو نصف قابلية التسليم الذي يعتمد بالكامل على DNS، والنصف الذي جعله Gmail وYahoo إلزاميًا للمرسلين بكميات كبيرة في 2024.

سلسلة ARC auth.arc

يحافظ ARC على نتيجة المصادقة عبر جهة إعادة التوجيه. وبدونه، تؤدي قائمة بريدية تضيف تذييلًا إلى إبطال توقيع DKIM الخاص بك، وتفشل النسخة المعاد توجيهها في اجتياز DMARC عند الطرف البعيد.

إذا فشل: لا شيء عليك فعله بصفتك مرسلًا. هذا مهم إذا كنت تدير قائمة أو جهة إعادة توجيه، ويوضح سبب فشل بعض رسائلك في اجتياز DMARC بعد أن يعيد شخص توجيهها.

يخصم ما يصل إلى 2 نقطة من أصل 100 في نتيجتنا.

RFC 7960 §1 — Introduction

DMARC with restrictive policies causes problems for many Mailing Lists.

RFC 8617 §2.1 — Evidence

In ARC's situation, the "evidence" is a message's authentication assessment at any point along the delivery path between origination and final delivery.

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

توقيع DKIM auth.dkim

يوقّع DKIM أجزاءً من الرسالة باستخدام مفتاح خاص وينشر المفتاح العام في DNS. نتحقق من كل توقيع تحمله الرسالة ونعرض نطاق التوقيع والمحدِّد وطول المفتاح.

إذا فشل: فعّل DKIM في منصة الإرسال الخاصة بك وانشر المفتاح الذي توفره لك. استخدم 2048 بت: لا يزال 1024 يجتاز التحقق، لكن مفتاحًا بهذا القصر يمكن كسره ولم يعد آمنًا.

يخصم ما يصل إلى 18 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1 من أصل 10 في النتيجة التقليدية.

RFC 6376 §3.5 — The DKIM-Signature Header Field

The signature of the email is stored in the DKIM-Signature header field.

RFC 6376 §6.1 — Extract Signatures from the Message

Verifiers MUST NOT attribute ultimate meaning to the order of multiple DKIM-Signature header fields.

RFC 8301 §3.1 — Signing and Verification Algorithms

rsa-sha1 MUST NOT be used for signing or verifying.

RFC 8463 §6 — Transition Considerations

For backward compatibility, signers can add multiple signatures that use old and new signing algorithms.

Google — Set up DKIM

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

محاذاة DKIM auth.dkim_alignment

لا يكفي وجود توقيع صالح لاجتياز DMARC. يجب أن يتطابق نطاق التوقيع مع النطاق الموجود في ترويسة From، إما تطابقًا تامًا أو على مستوى نطاق المؤسسة، بناءً على السياسة التي نشرتها.

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

يخصم ما يصل إلى 10 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1 من أصل 10 في النتيجة التقليدية.

RFC 9989 §4.4.1 — DKIM-Authenticated Identifiers

A single email can contain multiple DKIM signatures, and it is considered to produce a DMARC "pass" result if any DKIM-Authenticated Identifier aligns with the Author Domain.

Google — Set up DMARC

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

نتيجة DMARC auth.dmarc

يربط DMARC كلاً من SPF وDKIM بالنطاق الذي يراه القارئ، ويخبر الخوادم المستلمة بما يجب فعله عندما لا يتحقق أي تطابق. نعرض السياسة المنشورة وما إذا كانت هذه الرسالة قد استوفتها.

إذا فشل: انشر سجل DMARC. ابدأ بـ p=none، واقرأ التقارير لبضعة أسابيع، ثم انتقل إلى العزل بمجرد أن تعرف الجهات الأخرى التي ترسل باسمك.

يخصم ما يصل إلى 14 نقطة من أصل 100 في نتيجتنا.

RFC 9989 §5.3.5 — Determine DMARC "Pass" or "Fail"

If no Authenticated Identifiers exist for the domain, or none of the Authenticated Identifiers align with the Author Domain, the message is considered to fail the DMARC mechanism check.

RFC 9989 §4.7 — DMARC Policy Record Format

DMARC Policy Records follow the extensible "tag-value" syntax for DNS-based key records defined in DKIM [RFC6376].

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

Yahoo — Sender requirements and recommendations

معرّف المرسل auth.sender_id

هو الفحص نفسه الذي يجريه SPF، لكنه يُجرى على النطاق الموجود في ترويسة From بدلًا من المغلف. وهو يجيب عن سؤال مختلف: هل يصرّح النطاق الذي يراه القارئ للخادم الذي أرسل الرسالة. يمكن أن تجتاز الرسالة فحص SPF على مغلفها بينما لا يصادق النطاق الظاهر على أي جهة.

إذا فشل: انشر SPF للنطاق الموجود في ترويسة From، وليس فقط لنطاق الارتداد الذي منحته لك منصتك.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.5 من أصل 10 في النتيجة التقليدية.

RFC 4406 §4 — Record Selection

After the above steps, there should be one record remaining and evaluation can proceed.

SPF auth.spf

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

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

يخصم ما يصل إلى 18 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1 من أصل 10 في النتيجة التقليدية.

RFC 7208 §4.6.4 — DNS Lookup Limits

SPF implementations MUST limit the total number of those terms to 10 during SPF evaluation, to avoid unreasonable load on the DNS. If this limit is exceeded, the implementation MUST return "permerror".

RFC 7208 §2.6 — Results of Evaluation

Section 4 defines check_host(), a model function definition that uses the inputs defined above and the sender's policy published in the DNS to reach a conclusion about client authorization.

Google — Set up SPF

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

محاذاة SPF auth.spf_alignment

تحدد ما إذا كان عنوان الارتداد يطابق عنوان From الذي يراه القارئ. يصرّح SPF للمغلف، ولا يحتسب DMARC هذا التصريح إلا عندما يتطابق الاثنان.

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

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.5 من أصل 10 في النتيجة التقليدية.

RFC 9989 §4.4.2 — SPF-Authenticated Identifiers

Only an SPF-Authenticated Identifier that has Identifier Alignment with the Author Domain is enough to validate the authorized use of the Author Domain.

RFC 9989 §5.3.5 — Determine DMARC "Pass" or "Fail"

If one or more of the Authenticated Identifiers align with the Author Domain, the message is considered to pass the DMARC mechanism check.

Google — Set up DMARC

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

البنية التحتية والسمعة

الجهاز والعنوان اللذان أُرسلت منهما الرسالة، وما يعتقده بقية الإنترنت عنهما بالفعل.

حل اسم مضيف الإرسال infra.a_record

ما إذا كان اسم المضيف المعلن في HELO لديه أي سجل عنوان أصلًا.

إذا فشل: انشر سجل A للاسم الذي يعلنه خادمك.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 3 من أصل 10 في النتيجة التقليدية.

RFC 5321 §5.1 — Locating the Target Host

If an empty list of MXs is returned, the address is treated as if it was associated with an implicit MX RR, with a preference of 0, pointing to that host.

Google — Set up MX records

قوائم الحظر infra.dnsbl

ما إذا كان IP المُرسِل مدرجًا في أي من قوائم الحظر التي ترجع إليها الجهات المستلمة فعليًا. تُفحَص قائمتنا وفق نقطة الاختبار الموثقة الخاصة بكل نطاق بدلًا من تجميعها من بحث على الويب، لأن النطاق المتوقف يُرجع NXDOMAIN ويُقرأ ذلك على أنه "نظيف".

إذا فشل: اتبع عملية إزالة الإدراج على موقع مشغّل القائمة. يؤدي الإدراج في نطاق رئيسي إلى إيقاف البريد تمامًا، لذا عالجه قبل أي شيء آخر في الصفحة.

يخصم ما يصل إلى 25 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 3 من أصل 10 في النتيجة التقليدية.

RFC 5782 §2.1 — IP Address DNSxL

Each IPv4 address listed in the DNSxL has a corresponding DNS entry.

RFC 5782 §5 — Test and Contact Addresses

IPv4-based DNSxLs MUST contain an entry for 127.0.0.2 for testing purposes.

Google — Postmaster Tools: reputation and delivery errors

Google — Email sender guidelines

اسم HELO infra.helo

الاسم الذي يعلن به خادم الإرسال عن نفسه في بداية محادثة SMTP. يجب أن يكون نطاقًا مؤهلًا بالكامل ويمكن حله.

إذا فشل: عيّن اسم مضيف خادم البريد إلى اسم حقيقي في نطاقك، لا إلى معرّف حاوية أو اسم داخلي.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا.

RFC 5321 §4.1.1.1 — Extended HELLO (EHLO) or HELLO (HELO)

The argument clause contains the fully-qualified domain name of the SMTP client, if one is available.

Google — Email sender guidelines

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

سجل MX infra.mx

ما إذا كان النطاق الموجود في ترويسة From يمكنه استقبال البريد. من دونه، لا تجد الردود ورسائل الارتداد وجهة تصل إليها، وتعد عوامل التصفية نطاق الإرسال الذي لا يمكنه الاستقبال علامة سيئة.

إذا فشل: انشر سجل MX للنطاق الذي ترسل منه، حتى إذا كان يوجّه فقط إلى صندوق بريد تقرؤه مرة واحدة في الشهر.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 3 من أصل 10 في النتيجة التقليدية.

RFC 5321 §5.1 — Locating the Target Host

The lookup first attempts to locate an MX record associated with the name.

Google — Set up MX records

DNS العكسي infra.rdns

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

إذا فشل: اطلب ممن يملك IP تعيين PTR إلى اسم تتحكم فيه، وتأكد من أن هذا الاسم لديه سجل A يشير إلى العنوان نفسه.

يخصم ما يصل إلى 12 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1.5 من أصل 10 في النتيجة التقليدية.

RFC 1912 §2.1 — Inconsistent, Missing, or Bad Data

Make sure your PTR and A records match. For every IP address, there should be a matching PTR record in the in-addr.arpa domain.

Google — Email sender guidelines

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

تشفير النقل infra.tls

ما إذا كانت الرسالة قد وصلت عبر TLS، وما خوارزمية التشفير المستخدمة. كل نظام حديث يتفاوض عليه؛ وصول رسالة بنص واضح يكشف شيئًا عن إعداد الإرسال.

إذا فشل: فعّل STARTTLS على خادم الإرسال. كل منصة شائعة تفعل ذلك بالفعل، لذا فإن الفشل هنا يعني عادة وجود مرحّل مستضاف ذاتيًا في المسار.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا.

RFC 3207 §2 — STARTTLS Extension

The STARTTLS extension to SMTP is laid out as follows:

Google — Send email over a secure TLS connection

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

محركات البريد العشوائي

كيف تقيّم مرشحات المحتوى المستقلة الرسالة. نستخدم محركين بدلًا من واحد، لأن نتيجة محرك واحد هي رأي ذلك المحرك.

مُقيّم الذكاء الاصطناعي spam.ai_judge

يقدّر نموذج كيف سيتعامل مرشح حديث قائم على التعلم الآلي مع الرسالة، استنادًا إلى النتائج التقنية وقياسات المحتوى. يرى الحقائق، لا نص المتن.

إذا فشل: للتفصيل فقط بمفرده. يساهم تقديره في الحكم المجمّع أدناه.

يُعرض للتفصيل. لا يدخل في النتيجة مطلقًا.

الحكم المجمّع spam.panel

رقم واحد من المحركات التي استجابت، موزون بحيث لا يختفي رأي الأكثر تشددًا بمجرد حساب المتوسط. يُحتسب SpamAssassin وPostmark صوتًا واحدًا لأنهما يشتركان في قاعدة قواعد.

إذا فشل: عالج النتائج الفردية واحدة تلو الأخرى. يتغير هذا الصف عندما تتغير.

يخصم ما يصل إلى 25 نقطة من أصل 100 في نتيجتنا.

Google — Why Gmail marks messages as spam

How this score is calculated

Postmark SpamCheck spam.postmark

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

إذا فشل: لا شيء يلزم فعله. عندما يكون معطّلًا، يفيد الفحص بأنه معطّل، وهذا لا يساوي الاجتياز.

يُعرض للتفصيل. لا يدخل في النتيجة مطلقًا.

Rspamd spam.rspamd

مرشح ثانٍ مطوّر بشكل مستقل. يختلف مع SpamAssassin بما يكفي ليستحق الرجوع إليه، وهذا هو سبب وجوده هنا.

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

يُعرض للتفصيل. لا يدخل في النتيجة مطلقًا.

SpamAssassin spam.spamassassin

المرشح التقليدي القائم على القواعد، ولا يزال المحرك الذي تعتمد عليه معظم أدوات اختبار البريد الإلكتروني. تُدرج كل قاعدة انطبقت مع وزنها.

إذا فشل: اقرأ القواعد التي انطبقت بدلًا من النتيجة الإجمالية. يسهل تجاوز معظمها بمجرد أن تتمكن من معرفة ماهيتها.

يخصم ما يصل إلى 3 من أصل 10 في النتيجة التقليدية.

Google — Why Gmail marks messages as spam

Apache SpamAssassin — rule documentation

المحتوى

الرسالة نفسها: بنيتها وروابطها وصورها والأشياء التي يقرأها المرشح قبل أن يقرر.

النص البديل للصور content.alt_attributes

ما إذا كانت الصور تتضمن سمات alt. تحظر برامج البريد الصور البعيدة افتراضياً، لذا يكون النص البديل هو رسالتك خلال الثواني القليلة الأولى.

إذا فشل: اكتب نصاً بديلاً ينقل المعنى، ولا تترك العنصر المرئي الرئيسي من دونه أبداً.

يخصم ما يصل إلى 4 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.5 من أصل 10 في النتيجة التقليدية.

Google — Email sender guidelines

Script وiframe content.forbidden_tags

ما إذا كان HTML يحتوي على وسوم لن يشغّلها أي برنامج بريد. تُزال في أفضل الأحوال وتُعامل بوصفها إشارة إلى محاولة تجاوز عوامل التصفية في أسوأها.

إذا فشل: أزل script وiframe وobject وembed. يجب وضع أي عنصر تفاعلي خلف رابط.

يخصم ما يصل إلى 10 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1 من أصل 10 في النتيجة التقليدية.

Google — Email sender guidelines

التوازن بين النص وHTML content.html_text_ratio

مقدار الترميز في الرسالة مقارنة بمقدار النص القابل للقراءة. صفحة من الترميز تحيط بجملة واحدة هي نمط تتعرف عليه عوامل التصفية.

إذا فشل: اكتب جزءاً نصياً يعرض ما يعرضه HTML، بدلاً من نص بديل مؤقت.

يخصم ما يصل إلى 3 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.3 من أصل 10 في النتيجة التقليدية.

RFC 2046 §5.1.4 — Alternative Subtype

Systems should recognize that the content of the various parts are interchangeable.

Google — Why Gmail marks messages as spam

جزآ النص وHTML content.html_version

ما إذا كانت الرسالة تتضمن بديلاً بنص عادي إلى جانب HTML. تعطي بعض عوامل التصفية وزناً لغيابه، ويحتاج إليه كل قارئ شاشة.

إذا فشل: أرسل multipart/alternative مع نسخة نصية فعلية، وليس جزءاً فارغاً أو سطراً يطلب عرض الرسالة في متصفح.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا.

RFC 2046 §5.1.4 — Alternative Subtype

The "multipart/alternative" type is syntactically identical to "multipart/mixed", but the semantics are different. In particular, each of the body parts is an "alternative" version of the same information.

Google — Email sender guidelines

حجم HTML content.html_weight

حجم جزء HTML. يقتطع Gmail الرسالة بعد نحو 102 كيلوبايت ويخفي الباقي خلف رابط، ما يؤدي إلى إخفاء تذييل إلغاء الاشتراك معه.

إذا فشل: قلّص CSS المضمّن وكتل الأنماط المتكررة (تلائم معظم القوالب ثلث الحد بعد إزالة القواعد غير المستخدمة).

يخصم ما يصل إلى 3 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.3 من أصل 10 في النتيجة التقليدية.

Google — Email sender guidelines

حجم الصور content.images_weight

الحجم الإجمالي للصور التي تحمّلها الرسالة. الصور الكبيرة تجعل تحميل الرسالة بطيئًا على الهاتف، والرسائل التي تحتوي على صور فقط هي بنية تتعامل معها المرشحات بريبة.

إذا فشل: اضغطها وتأكد من أن الرسالة تظل مقروءة عند تعطيل الصور.

يخصم ما يصل إلى 3 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.3 من أصل 10 في النتيجة التقليدية.

Google — Email sender guidelines

فحص المرفقات content.malware

ما إذا كانت المرفقات تحتوي على برمجيات ضارة معروفة. في بيئات النشر التي يكون فيها الماسح معطلًا، تفيد هذه النتيجة بأنه لم يعمل بدلًا من الإفادة بأن المرفقات سليمة.

إذا فشل: إذا ظهر هذا التنبيه، فتوقف عن الإرسال واكتشف ما الموجود على الجهاز الذي أنشأ الرسالة.

يخصم ما يصل إلى 60 نقطة من أصل 100 في نتيجتنا.

Google — Why Gmail marks messages as spam

ClamAV — how detection works

النص التمهيدي content.preheader

سطر المعاينة الذي يعرضه برنامج البريد بجوار الموضوع. من دونه، يعرض البرنامج أول ما يظهر في نص الرسالة، وعادةً ما يكون رابط عرض الرسالة في المتصفح.

إذا فشل: أضف كتلة نص تمهيدي مخفية بوصفها العنصر الأول في نص الرسالة.

يخصم ما يصل إلى 2 نقطة من أصل 100 في نتيجتنا.

Google — Email sender guidelines

سطر الموضوع content.subject

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

إذا فشل: اجعله أقل من نحو 60 حرفًا، وتجنب الصياح وعلامات التعجب.

يخصم ما يصل إلى 3 نقطة من أصل 100 في نتيجتنا.

RFC 5322 §2.2 — Header Fields

Header fields are lines beginning with a field name, followed by a colon (":"), followed by a field body, and terminated by CRLF.

RFC 2047 §2 — Syntax of encoded-words

An 'encoded-word' is defined by the following ABNF grammar.

Google — Why Gmail marks messages as spam

الروابط المختصرة content.url_shortener

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

إذا فشل: استخدم رابطاً على نطاقك، أو استخدم نطاق التتبع الخاص بمنصتك على نطاق فرعي تابع لك.

يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 0.5 من أصل 10 في النتيجة التقليدية.

Google — Why Gmail marks messages as spam

قواعد المرسلين بكميات كبيرة

المتطلبات التي ينشرها Gmail وYahoo لأي جهة ترسل بكميات كبيرة. تنطبق هذه المتطلبات على الحملات البريدية، ويُتخطى فحصها للرسائل التي لا تبدو كذلك.

نشر سياسة DMARC compliance.dmarc_present

ما إذا كان نطاق From ينشر سجل DMARC أصلًا، بصرف النظر عما إذا كانت هذه الرسالة قد اجتازته. يشترط Gmail وYahoo وجود سجل من المرسلين بالجملة.

إذا فشل: انشر سجلًا. تكفي p=none لاستيفاء المتطلب وتزوّدك بتقارير يمكنك العمل انطلاقًا منها.

يخصم ما يصل إلى 6 نقطة من أصل 100 في نتيجتنا.

RFC 9989 §4.7 — DMARC Policy Record Format

If this tag is not present in an otherwise syntactically valid DMARC Policy Record, then the record is treated as if it included "p=none".

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

Yahoo — Sender requirements and recommendations

List-Unsubscribe compliance.list_unsubscribe

ما إذا كانت الرسالة تتضمن ترويسة لإلغاء الاشتراك يمكن لعميل البريد التعامل معها. يشترط Gmail وYahoo وجودها لدى مرسلي الرسائل المجمّعة، ويؤدي غيابها إلى التصفية بغض النظر عن كل شيء آخر. تنطبق القاعدة على الرسائل البريدية. أما الرسالة التي تطلب من المستلم تأكيد اشتراك، أو تخبره بإتمامه، فتُرسل إلى شخص واحد بشأن إجراء نفّذه للتو؛ ويصنّف CAN-SPAM ذلك كرسالة معاملات أو علاقة، ولا يطلب Gmail ولا Yahoo ترويسة لإلغاء الاشتراك فيها. لذلك يقرأ هذا الفحص الرسالة أولًا. لا تُحتسب مخالفة على تأكيد اشتراك أو رسالة ترحيب أو رسالة معاملات أو إشعار بلا ترويسات قائمة، ويبيّن التقرير التصنيف الذي اعتُمد للرسالة. رسالة الترحيب المحشوّة بالعروض هي عمليًا العدد الأول من الرسائل البريدية؛ ومن دون ترويسات القائمة، لا يستطيع الفحص التمييز بين الاثنين، ولا يحتسب مخالفة بناءً على تخمين. إذا كانت الرسالة تتضمن List-Unsubscribe أو List-Id، فقد صرّحت بنفسك بأنها رسالة قائمة، ويُنفّذ الفحص كما كان دائمًا.

إذا فشل: أضف ترويسة List-Unsubscribe تحتوي على URI يستخدم HTTPS. يمكن لكل منصة إرسال تنفيذ ذلك.

يخصم ما يصل إلى 10 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1 من أصل 10 في النتيجة التقليدية.

RFC 2369 §3.2 — List-Unsubscribe

The List-Unsubscribe field describes the command (preferably using mail) to directly unsubscribe the user (removing them from the list).

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

Yahoo — Sender requirements and recommendations

إلغاء الاشتراك بنقرة واحدة compliance.one_click_unsubscribe

الصيغة الأكثر صرامة: URI يستخدم HTTPS، وترويسة "List-Unsubscribe-Post"، وتوقيع DKIM واحد صالح يغطي كلتا الترويستين. يجب توافر الثلاثة جميعًا، وإلا فلن يعرض المستلم الزر. مثل فحص List-Unsubscribe، ينطبق هذا على الرسائل البريدية، لا على رسالة تأكيد أو رسالة ترحيب.

إذا فشل: الخطأ المعتاد هو التوقيع: توقّع المنصات "List-Unsubscribe" وتنسى "List-Unsubscribe-Post". يجب أن يظهر اسما الترويستين في وسم h= للتوقيع نفسه.

يخصم ما يصل إلى 8 نقطة من أصل 100 في نتيجتنا.

RFC 8058 §4 — Additional Requirements

The List-Unsubscribe and List-Unsubscribe-Post headers MUST be covered by the signature and included in the "h=" tag of a valid DKIM-Signature header field.

RFC 8058 §3.1 — Mail Senders

The List-Unsubscribe header field MUST contain one HTTPS URI.

Google — Sender guidelines FAQ: rules for 5,000+ messages a day

Yahoo — Sender requirements and recommendations

التوصيات

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

BIMI advisory.bimi

ما إذا كان النطاق ينشر سجل BIMI، الذي يضع شعارًا بجوار رسائلك في بعض العملاء. يتطلب أولًا سياسة DMARC مُطبَّقة، وشهادة علامة موثّقة مدفوعة التكلفة.

إذا فشل: يستحق التنفيذ بمجرد ضبط DMARC على الحجر الصحي أو الرفض وعندما يبرر الحجم تكلفة الشهادة.

توصية. لا يخصم شيئًا.

BIMI — draft specification, not yet an RFC

عمر مفتاح DKIM وطوله advisory.dkim_key_rotation

طول مفتاح التوقيع ومدة استخدامه. تصبح مهاجمة المفاتيح القصيرة دون اتصال أقل تكلفة مع مرور كل عام.

إذا فشل: انتقل إلى 2048 بت ودوّر المفتاح وفق جدول زمني. انشر المحدد الجديد، وحوّل التوقيع إليه، ثم أوقف استخدام المحدد القديم.

توصية. لا يخصم شيئًا.

RFC 8301 §3.2 — Key Sizes

Since short RSA keys more easily succumb to off-line attacks, Signers MUST use RSA keys of at least 1024 bits for all keys. Signers SHOULD use RSA keys of at least 2048 bits.

Google — Set up DKIM

تسليم تقارير DMARC advisory.dmarc_reporting

ما إذا كانت العناوين الموجودة في سجل DMARC ستتلقى أي شيء فعليًا. إذا كان عنوان التقرير خارج نطاقك، فإن RFC 9990 يفرض على ذلك النطاق نشر إذنه الخاص أولًا، كسجل TXT على your-domain._report._dmarc.their-domain. وبدونه، يتجاهل المستلم العنوان: لا رسالة ارتداد، ولا خطأ، ولا تقرير. هذا هو الإعداد المعتاد وليس حالة غير مألوفة، لأن العنوان يكون عادةً لدى مزود مراقبة، أو في نطاقك الرئيسي بينما توجد السياسة على نطاق فرعي للإرسال. تنطبق القاعدة نفسها على تقارير الفشل، إذ يشير RFC 9991 إلى الإجراء نفسه لوسم ruf. نستعلم عن السجلات نفسها التي سيستعلم عنها المستلم ونعرض لك الأسماء التي طلبناها.

إذا فشل: اطلب ممن يدير نطاق الوجهة نشر سجل TXT يحتوي على v=DMARC1 بالاسم الظاهر في النتيجة. عادةً ما يفعل مزودو المراقبة ذلك نيابةً عنك بمجرد إضافة النطاق إلى حسابهم، لذلك إذا كان السجل مفقودًا، فمن المحتمل أن النطاق لم يُضف من جانبهم. أما إذا كانت التقارير تُرسل إلى نطاقك، فلا يلزم اتخاذ أي إجراء.

توصية. لا يخصم شيئًا.

RFC 9990 §4 — Verifying External Destinations

When a Mail Receiver discovers a DMARC Policy Record in the DNS, and the Organizational Domain at which that record was discovered is not identical to the Organizational Domain of the host part of the authority component of a [RFC3986] specified in the "rua" tag, the following verification steps MUST be taken:

RFC 9990 §4 — Verifying External Destinations

Where the above algorithm fails to confirm that the external reporting was authorized by the Report Consumer, the URI MUST be ignored by the Mail Receiver generating the report.

RFC 9991 §5 — Verifying External Destinations

In case of external destinations, a Mail Receiver who generates failure reports MUST use the Verifying External Destinations procedure described in Section 4 of [RFC9990], substituting the "ruf" tag where the "rua" tag appears in that procedure.

Google — Set up DMARC

DNSSEC advisory.dnssec

ما إذا كان النطاق موقّعًا. توجد SPF وDKIM وDMARC جميعها في DNS، لذا يمكن للمهاجم القادر على تزوير إجابات DNS تزويرها جميعًا.

إذا فشل: فعّله لدى مسجّل نطاقك. عادةً ما يكون مفتاح تبديل واحدًا، ويتولى المسجّل الباقي.

توصية. لا يخصم شيئًا.

RFC 4033 §2 — Definitions of Important DNSSEC Terms

Authentication Chain: An alternating sequence of DNS public key (DNSKEY) RRsets and Delegation Signer (DS) RRsets

MTA-STS advisory.mta_sts

ما إذا كان النطاق ينشر سياسة تطلب من الخوادم الأخرى رفض التسليم غير المشفّر إليك. وهي تحمي البريد المرسل إليك بدلًا من البريد الذي ترسله.

إذا فشل: انشر سجل TXT وملف السياسة عبر HTTPS (عمل يستغرق فترة بعد ظهر، ويغلق هجوم خفض مستوى التشفير).

توصية. لا يخصم شيئًا.

RFC 8461 §3 — Policy Discovery

To discover if a recipient domain implements MTA-STS, a sender need only resolve a single TXT record.

طول مسار الإرجاع advisory.return_path_length

مدى طول عنوان الارتداد. يُلزم RFC 5321 الخادم المستقبِل بقبول 64 ثُمانية قبل @، وينص في القسم نفسه على أنه ينبغي ألا يفرض أي تنفيذ حدًا يمكنه تجنبه. ومع ذلك، تفرض تطبيقات كثيرة حدًا، وتُرفض الرسالة التي تتجاوز هذا الحد عند MAIL FROM، حتى قبل إرسال النص الأساسي. تواجه منصات الإرسال هذا الأمر عند ترميز المستلم في مسار الإرجاع كي يمكن مطابقة رسائل الارتداد معه، ما يجعل الطول يعتمد على من تراسله بدلًا منك.

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

توصية. لا يخصم شيئًا.

RFC 5321 §4.5.3.1.1 — Local-part

The maximum total length of a user name or other local-part is 64 octets.

RFC 5321 §4.5.3.1 — Size Limits and Minimums

Every implementation MUST be able to receive objects of at least these sizes.

Haraka — the address parser that enforces the 64-octet local-part, and the flag that relaxes it

تقارير TLS advisory.tls_rpt

ما إذا كان النطاق يطلب تقارير عندما يفشل أحد في التسليم إليه عبر TLS. يعمل مع MTA-STS: السياسة من دون التقارير لا تتيح لك معرفة ما إذا كانت تعمل.

إذا فشل: أضف سجل TXT يتضمن عنوانًا يستقبل التقارير اليومية.

توصية. لا يخصم شيئًا.

RFC 8460 §3 — Reporting Policy

A domain publishes a record to its DNS indicating that it wishes to receive reports.