نظرة سريعة. نوع السجل: TXT، واحد لكل نطاق · يبدأ بـ: v=spf1 · القراءة: من اليسار إلى اليمين، وأول تطابق يحسم · حد البحث: 10 عمليات بحث DNS
الخلاصة
- كيف يُقرأ السجل. سجل SPF هو سطر نصي واحد يُنشر كسجل TXT.
- علامات التأهيل. علامة التأهيل حرف واحد يوضع مباشرة أمام الآلية.
- آليات لا تحتاج إلى بحث DNS. تطابق الآليتان ip4 وip6 عنوانًا حرفيًا أو نطاق عناوين مكتوبًا بصيغة CIDR.
- آليات تكلّف عملية بحث DNS. تطلب الآلية include من المستقبِل تقييم سجل SPF لنطاق آخر والتطابق إذا نجح ذلك السجل.
- المُعدِّلات: redirect وexp. يُكتب المُعدِّل بصيغة الاسم=القيمة وليس اختبارًا لعنوان المرسِل.
- حدود الطول والصيغة. يمكن أن تحتوي كل سلسلة داخل سجل TXT على 255 حرفًا على الأكثر.
كيف يُقرأ السجل
سجل SPF هو سطر نصي واحد يُنشر كسجل TXT. ويجب أن يبدأ بوسم الإصدار v=spf1، تليه قائمة مصطلحات مفصولة بمسافات. يقيّم الخادم المستقبِل المصطلحات من اليسار إلى اليمين مقابل عنوان IP الذي اتصل به، وأول مصطلح يتطابق يحسم النتيجة.
v=spf1 ip4:203.0.113.10 include:_spf.example.net ~all
إذا لم يتطابق أي مصطلح ولم يوجد redirect، تكون النتيجة حيادًا. ولهذا تنتهي معظم السجلات بمصطلح all: إنه يطابق كل شيء، فتقول الكلمة الأخيرة دائمًا ما يجب فعله مع خادم غير مدرج في القائمة.
علامات التأهيل
علامة التأهيل حرف واحد يوضع مباشرة أمام الآلية. وهي تحدد النتيجة عند تطابق تلك الآلية. وعند غيابها يُفترض الزائد، فـ mx و+mx تعنيان الشيء نفسه.
-all fail: not authorised
~all softfail: probably not authorised
?all neutral: no opinion
+all pass: everyone is authorised (never use this)
النتائج الأربع هي النجاح (الزائد) والفشل (الناقص) والفشل الناعم (التلدة) والحياد (علامة الاستفهام). وتعامل الجهات المستقبِلة عادةً الفشل والفشل الناعم كإشارة سلبية لا كتعليمات بالرفض، ويقرر DMARC ما يحدث للرسالة الفاشلة.
آليات لا تحتاج إلى بحث DNS
تطابق الآليتان ip4 وip6 عنوانًا حرفيًا أو نطاق عناوين مكتوبًا بصيغة CIDR. وهما أرخص جزء في السجل لأن المستقبِل لا يحتاج إلى البحث عن شيء، وهما الخيار الأكثر أمانًا عندما ينشر المزوّد عناوين إرسال ثابتة.
ip4:203.0.113.0/24
ip6:2001:db8::/32
all
تطابق الآلية all كل عنوان. ومكانها في النهاية. أما المصطلحات المكتوبة بعدها فلا تُبلَغ أبدًا.
آليات تكلّف عملية بحث DNS
تطلب الآلية include من المستقبِل تقييم سجل SPF لنطاق آخر والتطابق إذا نجح ذلك السجل. وتطابق الآلية a سجلات العناوين لنطاق ما، وتطابق mx عناوين خوادم بريده. وكلتاهما تفترضان النطاق الجاري فحصه، وكلتاهما تقبل نطاقًا وطول CIDR. وتطابق الآلية exists إذا أمكن حلّ اسم، وتطابق ptr عبر DNS العكسي.
include:_spf.example.net
a
a:mail.example.com/24
mx
exists:%{i}._spf.example.com
تُحسب كل من include وa وmx وptr وexists، والمُعدِّل redirect، ضمن حد عشر عمليات بحث DNS، وتُحسب الـ includes داخل الـ includes أيضًا. ويضع المعيار كذلك حدًا أقصى لآلية mx عند عشرة خوادم بريد. ويحذّر المعيار من استخدام ptr لأنها بطيئة وغير موثوقة، فتجنبها.
المُعدِّلات: redirect وexp
يُكتب المُعدِّل بصيغة الاسم=القيمة وليس اختبارًا لعنوان المرسِل. يقول المُعدِّل redirect: تجاهل بقية هذا السجل واستخدم السجل الموجود في نطاق آخر بدلًا منه. ولا يُنظر فيه إلا عندما لا تتطابق أي آلية، والسجل الذي يحتوي على مصطلح all لا يبلغه أبدًا.
v=spf1 redirect=_spf.example.net
يسمّي المُعدِّل exp نطاقًا يحتوي سجل TXT الخاص به على نص توضيحي يجوز للجهات المستقبِلة عرضه عندما يفشل SPF. ومعظم النطاقات لا تستخدمه أبدًا. ويجوز ظهور كل اسم مرة واحدة على الأكثر في السجل.
حدود الطول والصيغة
يمكن أن تحتوي كل سلسلة داخل سجل TXT على 255 حرفًا على الأكثر. ويُخزَّن السجل الأطول كعدة سلاسل تضمّها الجهات المستقبِلة معًا، وتقسم معظم لوحات DNS القيمة الطويلة نيابةً عنك. وقد يتجاوز السجل الطويل جدًا حجم رد DNS العادي، وهذا سبب آخر لإبقاء القائمة قصيرة.
تُفصل المصطلحات بمسافة واحدة أو أكثر ولا تتأثر بحالة الأحرف. أبقِ السجل في سجل TXT واحد: فالنطاق الذي له سجلا SPF يحصل على خطأ دائم.
أخطاء الصياغة التي تكسر السجل
تأتي معظم حالات الفشل من هفوات قليلة: غياب v=spf1، أو include بلا نطاق، أو آلية بخطأ إملائي مثل inlcude، أو عنوان فيه خطأ مثل ip4:203.0.113.300، أو حرف زائد ناتج عن النسخ واللصق. وأي منها يجعل السجل كله غير صالح والنتيجة خطأً دائمًا.
اختبر قبل أن تنشر. تقرأ أداة فحص SPF لدينا سجلًا تلصقه، وتشير إلى كل مشكلة، وتحسب عمليات بحث DNS، فتصلح السجل قبل أن يصبح فعّالًا.
مراجع ومصادر إضافية
طبّقه في MigoSMTP: مقالات مركز المساعدة
- إصلاح permerror في SPF وحد 10 عمليات بحث
- مصادقة نطاق إرسال في MigoSMTP: SPF وDKIM وDMARC
- التحقق من نطاق الإرسال: سجلات DNS والانتشار
أدلة وأدوات ذات صلة
- فاحص سجل SPF: الصق سجلًا أو افحص نطاقًا.
- مولّد سجل SPF: أنشئ سجلًا يبقى ضمن الحد.
- كيف تنشئ سجل SPF: الدليل خطوة بخطوة.
- أمثلة على سجل SPF: Workspace وMicrosoft 365 وغيرها.
لست متأكدًا من صحة سجلاتك؟ شغّل أداتنا المجانية للفحص، أو أرسل إلينا ترويسة وسنساعدك في قراءتها.
الأسئلة الشائعة
ما هي صياغة سجل SPF؟
سجل SPF هو سجل TXT واحد يبدأ بـ v=spf1، تتبعه مصطلحات تُقرأ من اليسار إلى اليمين، وينتهي عادةً بمصطلح all. وكل مصطلح هو آلية مثل ip4 أو include أو a أو mx، يسبقها اختياريًا علامة تأهيل تحدد النتيجة.
ماذا تعني علامات الزائد والناقص والتلدة والاستفهام في SPF؟
هي علامات التأهيل. الزائد يعني النجاح وهو الافتراضي، والناقص يعني الفشل، والتلدة تعني الفشل الناعم، وعلامة الاستفهام تعني الحياد. وتوضع مباشرة أمام الآلية، مثل -all أو ~all.
أي آليات SPF تُحسب ضمن حد 10 عمليات بحث؟
تُحسب الآليات include وa وmx وptr وexists والمُعدِّل redirect. أما الآليات ip4 وip6 وall فلا تحتاج إلى عملية بحث DNS، ولذلك لا تُحسب.
ماذا يحدث للمصطلحات المكتوبة بعد آلية all؟
لا تُقيَّم أبدًا، لأن التقييم يتوقف عند أول مصطلح يتطابق وall تطابق كل شيء. ضع all في النهاية.