فاحص SPF وDKIM وDMARCSPF, DKIM & DMARC Checker

افحص مصادقة البريد لأي نطاق: سجل SPF مع حدّ الـ 10 استعلامات، ومفاتيح DKIM وقوتها، وسياسة DMARC، وسجلات MX، مع إصلاحات جاهزة للنسخ. الفحص يتم عبر DNS مباشرة، دون تسجيل. Check email authentication for any domain: SPF with the 10-lookup limit, DKIM keys and their strength, DMARC policy and MX records, with ready-to-copy fixes. Checks run against live DNS, no signup.

كيف تُحسب النتيجة؟How the result is calculated

مصدر البيانات: استعلامات DNS-over-HTTPS من متصفحك إلى dns.google (أو cloudflare-dns.com عند الفشل أو بحسب اختيارك). أي ما تراه هو ما يراه المستقبِلون عبر محلّل عام، وقد يتأخر ظهور تعديل حديث بقدر TTL السجل.

SPF (RFC 7208): نحلّل السجل ونتتبّع include وredirect تكراريًا ونعدّ الآليات التي تستدعي DNS (include وa وmx وptr وexists وredirect). الحد المسموح 10، وتجاوزه ينتج permerror فيُرفض التحقق. ونعدّ الاستعلامات الفارغة (void lookups) والتوصية بألا تتجاوز 2. السجل الواحد فقط مسموح لكل نطاق. الرقم الذي نعرضه هو أسوأ حالة ثابتة؛ فالتقييم الفعلي قد يتوقف مبكرًا حسب IP المُرسِل.

DKIM (RFC 6376): نجلب selector._domainkey.domain ونحلّل الوسوم (v وk وp وt…). نفكّ ترميز المفتاح العام ونقيس طول معامل RSA بالبت: أقل من 1024 غير آمن، و1024 ضعيف، و2048 فأكثر جيد. المفتاح الفارغ p= يعني مفتاحًا مُلغى.

DMARC (RFC 7489): نجلب _dmarc.domain وإن لم نجده بحثنا في النطاق الأساسي. نتحقق من الوسوم ونطاق التقارير الخارجي (_report._dmarc) وسياسة p (none مراقبة فقط).

MX: نقرأ السجلات ونتحقق أن كل خادم يُحَلّ إلى عنوان وأنه ليس CNAME (RFC 2181)، ونتعرف على MX الفارغ (RFC 7505).

الدرجة (من 100): SPF = 30 (وجود وصحة 10، ضمن الحدود 8، والمؤهِّل -all 12 أو ~all 9 أو ?all 3). DKIM = 25 (مفتاح موجود 12، قوته حتى 10 ونعتمد أقوى مفتاح وُجد، ليس في وضع الاختبار 3). DMARC = 35 (وجوده 10، السياسة حتى 17، تقارير rua 5، pct=100 3). MX = 10. إن لم يُجرَّب DKIM أو لم يُعثر عليه فيُستثنى من المقام فلا يُعاقَب النطاق على ما لا يمكن اكتشافه. الدرجة تقدير خاص بنا وليست معيارًا رسميًا.

Data source: DNS-over-HTTPS queries from your browser to dns.google (or cloudflare-dns.com as a fallback or by your choice). What you see is what receivers see through a public resolver; recent changes may take up to the record’s TTL to appear.

SPF (RFC 7208): we parse the record and follow include and redirect recursively, counting the terms that trigger DNS queries (include, a, mx, ptr, exists, redirect). The limit is 10; exceeding it yields permerror and verification fails. We also count void lookups, which should not exceed 2. Only one SPF record is allowed per domain. The number shown is a static worst case; real evaluation may stop early depending on the sender’s IP.

DKIM (RFC 6376): we fetch selector._domainkey.domain and parse its tags (v, k, p, t…). We decode the public key and measure the RSA modulus in bits: under 1024 is insecure, 1024 is weak, 2048 or more is good. An empty p= means a revoked key.

DMARC (RFC 7489): we fetch _dmarc.domain and fall back to the organizational domain if missing. We validate the tags, external report authorization (_report._dmarc) and the p policy (none is monitoring only).

MX: we read the records, check each host resolves to an address and is not a CNAME (RFC 2181), and recognize a null MX (RFC 7505).

Score (out of 100): SPF = 30 (present and valid 10, within limits 8, qualifier -all 12, ~all 9 or ?all 3). DKIM = 25 (key found 12, strength up to 10 using the strongest key found, not in test mode 3). DMARC = 35 (present 10, policy up to 17, rua reports 5, pct=100 3). MX = 10. If DKIM was not tested or not found, it is excluded from the denominator so a domain is not penalized for what cannot be discovered. The score is our own estimate, not an official standard.

حدود الأداة:Limits: لا يمكن اكتشاف محدّد DKIM تلقائيًا (هو سرّ المُرسِل)؛ نجرّب قائمة محددات شائعة، وعدم العثور على مفتاح لا يعني عدم وجوده. لا نحمّل سياسة MTA-STS (ملف HTTPS) ولا نتحقق من توقيع رسالة فعلية. لا نفحص القوائم السوداء (DNSBL). الفحص ثابت (static) ولا يرسل بريدًا اختباريًا. A DKIM selector cannot be discovered automatically (it is the sender’s secret); we try a list of common selectors, and not finding a key does not mean none exists. We do not fetch the MTA-STS policy (an HTTPS file) nor verify a real message signature. We do not check blacklists (DNSBL). The check is static and sends no test email.

أسئلة شائعةFAQ

لماذا يقول الفحص "تجاوز الحد 10" بينما يعمل بريدي؟Why does it say “over the 10-lookup limit” while my mail works?

لأن الرقم هنا أسوأ حالة. بعض المستقبِلين يتساهلون وبعضهم يرفض. المضمون أن تبقى تحت 10. اختصر الـ include غير الضرورية أو استخدم عناوين ip4 الثابتة للخدمات.Because the figure is a worst case. Some receivers are lenient and some reject. Staying under 10 is the safe choice. Remove unneeded includes or use static ip4 ranges for services.

لم يجد الفحص مفتاح DKIM مع أنه مفعّل. لماذا؟The check found no DKIM key though it is enabled. Why?

المحدّد غير معروف لنا. افتح رسالة وصلتك من النطاق، وابحث في ترويستها عن DKIM-Signature ثم قيمة s=، وأدخلها في خانة "محددات DKIM".We do not know the selector. Open a message received from the domain, find DKIM-Signature in its headers and its s= value, then enter it in the “DKIM selectors” field.

هل أبدأ بـ p=reject مباشرة؟Should I start with p=reject right away?

لا. ابدأ بـ p=none مع rua لجمع التقارير، وراجع المصادر المشروعة، ثم انتقل إلى quarantine ثم reject تدريجيًا (يمكنك استخدام pct).No. Start with p=none plus rua to collect reports, review the legitimate sources, then move to quarantine and reject gradually (you can use pct).

هل يُرسَل اسم النطاق إلى جهة خارجية؟Is the domain name sent to a third party?

نعم، إلى خدمة DNS العامة المختارة (Google أو Cloudflare) لأن الاستعلام يمرّ عبرها، ولا يُرسل شيء آخر. لا نخزّن النطاقات.Yes, to the DNS service you choose (Google or Cloudflare) because the query goes through it, and nothing else is sent. We do not store domains.