أرسل رسالة واحدة إلى عنوان مؤقت، وسيُجرى عليها 42 فحصًا. تتناول هذه الصفحة جميعها: ما الذي يفحصه كل منها، وما يخصمه من نتيجتك عند فشله، والقسم من المعيار الذي يستند إليه.
لا شيء هنا هو رأينا مصاغًا في صورة قاعدة. عندما يفرض فحص ما تنص عليه إحدى المواصفات، تُقتبس تحته الجملة الواردة في تلك المواصفة. وعندما يفرض بدلًا من ذلك متطلبًا من Google أو Yahoo، يوجد رابط إلى صفحتهما. وعندما يكون مبنيًا على تقديرنا الخاص، يُذكر ذلك.
المصادقة
ما إذا كان الخادم المستلِم يستطيع إثبات أن الرسالة جاءت من المصدر الذي تدّعيه. هذا هو نصف قابلية التسليم الذي يعتمد بالكامل على 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
توفر الروابط content.broken_links
ما إذا كانت الروابط في الرسالة تعمل. الرابط المعطل في نشرة إخبارية يفقد الثقة فورًا، وتلاحظه المرشحات أيضًا.
إذا فشل: أصلحها أو أزلها. تحقق من نطاق التتبع أيضًا: إذا انتهت صلاحيته، تعطلت جميع الروابط دفعة واحدة.
يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا و ما يصل إلى 1 من أصل 10 في النتيجة التقليدية.
Google — Why Gmail marks messages as spam
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.link_mismatch
يقارن النطاق في نص الرابط بالوجهة بعد عمليات إعادة توجيه HTTP. نطاق التتبع الوسيط وحده ليس دليلاً على الخداع.
إذا فشل: استخدم نطاق الوجهة أو نصاً وصفياً. تبقى الوجهات التي يتعذر الوصول إليها غير متحقق منها.
يخصم ما يصل إلى 3 نقطة من أصل 100 في نتيجتنا.
Google — Email sender guidelines
سمعة الروابط content.malicious_links
يفحص الروابط مقابل قوائم التهديدات. وجود تطابق لا يعني أن كل مستلم سيحظر الرسالة.
إذا فشل: افحص الوجهات المحددة واستبدل الروابط غير الآمنة أو احذفها. السجل التاريخي وحده لا يثبت وجود إصابة حالية.
يخصم ما يصل إلى 40 نقطة من أصل 100 في نتيجتنا.
Google — Why Gmail marks messages as spam
فحص المرفقات content.malware
ما إذا كانت المرفقات تحتوي على برمجيات ضارة معروفة. في بيئات النشر التي يكون فيها الماسح معطلًا، تفيد هذه النتيجة بأنه لم يعمل بدلًا من الإفادة بأن المرفقات سليمة.
إذا فشل: إذا ظهر هذا التنبيه، فتوقف عن الإرسال واكتشف ما الموجود على الجهاز الذي أنشأ الرسالة.
يخصم ما يصل إلى 60 نقطة من أصل 100 في نتيجتنا.
Google — Why Gmail marks messages as spam
ClamAV — how detection works
سطر الموضوع 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
TLS للبريد بالجملة compliance.tls_required
ما إذا وصلت الرسالة مشفّرة. يغطيها فحص البنية التحتية عندما يكون قد نُفّذ بالفعل.
إذا فشل: راجع فحص تشفير النقل أعلاه.
يخصم ما يصل إلى 5 نقطة من أصل 100 في نتيجتنا.
Google — Send email over a secure TLS connection
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
التوصيات
يستحسن تنفيذها ولا تدخل في النتيجة مطلقًا. لا يمكن لأي شيء في هذا القسم خصم نقاط، وهذا قرار في المنتج تفرضه الاختبارات.
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.