العربية

ما الذي يخبرني به إعداد SPF وDKIM وDMARC عن خادم بريدي؟

تخبرك سجلات SPF وDKIM وDMARC بمدى شرعية خادم بريدك الإلكتروني وقدرته على اجتياز فلاتر الحماية العالمية، وهي بمثابة الهوية الرقمية التي تمنع انتحال نطاقك.

5 دقائق قراءة
ما الذي يخبرني به إعداد SPF وDKIM وDMARC عن خادم بريدي؟

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

عندما ترسل بريداً إلكترونياً من خادمك، يقوم الخادم المستلم بفحص سجلات DNS الخاصة بنطاقك. إذا وجد أن سجل SPF لا يتضمن عنوان IP الخاص بالخادم المرسل، أو أن توقيع DKIM غير متطابق، فإن سياسة DMARC هي التي تقرر مصير هذه الرسالة. هذا النظام ليس مجرد إجراء تقني، بل هو حجر الزاوية في بناء سمعة خادم البريد الخاص بك لدى مزودي الخدمة العالميين.

السجل ماذا يخبر الخادم المستلم؟ التأثير التقني عند الفشل
SPF قائمة بعناوين IP المسموح لها بالإرسال. فشل SoftFail أو HardFail حسب الإعداد.
DKIM أن محتوى الرسالة لم يتغير منذ خروجها. فشل التحقق من التوقيع الرقمي Signature Invalid.
DMARC كيفية التعامل مع الرسائل التي تفشل في الاختبارين أعلاه. تنفيذ إجراء reject أو quarantine.

سجل SPF: قائمة المسموح لهم بالدخول

سجل SPF (Sender Policy Framework) هو سجل TXT في نظام DNS يحدد الخوادم المسموح لها بإرسال رسائل بريد إلكتروني نيابة عن نطاقك. عندما تصل رسالة إلى وجهتها، ينظر الخادم المستلم إلى عنوان IP الذي جاءت منه الرسالة ويقارنه بالعناوين الموجودة في سجل SPF. إذا لم يكن العنوان موجوداً، يتم اعتبار الرسالة مشبوهة.

من الأمور التقنية الحرجة التي يجب مراقبتها هي DNS Lookup Limit. يضع بروتوكول SPF حداً أقصى يبلغ 10 عمليات بحث DNS لكل سجل. إذا قمت بإضافة العديد من آليات include:، فقد يتجاوز السجل هذا الحد، مما يؤدي إلى خطأ من نوع PermError، وهو ما يعني تجاهل السجل بالكامل. يمكنك التحقق من سجل SPF الخاص بك باستخدام الأمر التالي في واجهة السطر البرمجي:

dig TXT example.com +short

يجب أن يظهر السجل بصيغة تبدأ بـ v=spf1 وتنتهي بـ ~all (فشل مرن) أو -all (فشل صارم). في خوادمنا في ألمانيا التي تعمل بلوحة تحكم Plesk، يتم ضبط هذه السجلات تلقائياً لتشمل عنوان IP الخاص بالخادم، ولكن عند استخدام خدمات خارجية للإرسال، يجب دمجها بحذر لتجنب تجاوز حد العشر عمليات بحث.

سجل DKIM: الختم الرقمي المشفر

بينما يركز SPF على “من” يرسل، يركز DKIM (DomainKeys Identified Mail) على “سلامة” ما يتم إرساله. يقوم الخادم المرسل بإنشاء توقيع رقمي فريد لكل رسالة باستخدام مفتاح خاص Private Key. يتم وضع هذا التوقيع في ترويسة البريد الإلكتروني (Header). في المقابل، تقوم أنت بنشر المفتاح العام Public Key في سجلات DNS الخاصة بنطاقك.

عندما يستلم الطرف الآخر الرسالة، يستخدم المفتاح العام لفك تشفير التوقيع. إذا تطابقت النتيجة مع محتوى الرسالة، فهذا يؤكد أن الرسالة لم يتم تعديلها أثناء عبورها للإنترنت. تعتمد قوة هذا التشفير على طول المفتاح، حيث نستخدم في Hostna مفاتيح بطول 2048 بت لتوفير مستوى عالٍ من الأمان. للتحقق من وجود سجل DKIM لنطاقك، يمكنك استخدام أمر dig مع تحديد الـ selector (الذي غالباً ما يكون default في Plesk):

dig TXT default._domainkey.example.com +short

يعد نظام أسماء النطاقات هو الوعاء الذي يحمل هذه المفاتيح، وأي تأخير في تحديث TTL (Time To Live) قد يؤدي إلى استمرار فشل التحقق لفترة بعد تغيير الإعدادات.

سجل DMARC: صانع القرار النهائي

سجل DMARC (Domain-based Message Authentication, Reporting, and Conformance) هو الطبقة الإدارية التي تجمع بين SPF وDKIM. هو الذي يخبر الخوادم المستلمة: “إذا فشلت الرسالة في اختبار SPF أو DKIM، فافعل بها كذا”. بدون DMARC، قد يقرر الخادم المستلم من تلقاء نفسه ما إذا كان سيقبل الرسالة أم لا، وهو ما يؤدي إلى نتائج غير متوقعة.

يتكون سجل DMARC من وسوم (Tags) برمجية، أهمها وسم السياسة p=. هناك ثلاث قيم ممكنة لهذا الوسم:

  • p=none: المراقبة فقط، لا يتم اتخاذ إجراء ضد الرسائل الفاشلة.
  • p=quarantine: وضع الرسائل الفاشلة في مجلد البريد غير المرغوب فيه.
  • p=reject: رفض الرسالة تماماً وعدم استلامها.

الانتقال إلى سياسة p=reject يتطلب الحذر الشديد. نوصي دائماً بالبدء بسياسة p=none مع تفعيل تقارير RUA عبر الوسم rua=mailto:admin@example.com. هذه التقارير تصلك كملفات XML دورية توضح لك عناوين IP التي تحاول الإرسال باسم نطاقك، مما يساعدك في اكتشاف أي خوادم شرعية نسيت إضافتها إلى سجل SPF. يمكنك الاطلاع على التفاصيل التقنية الكاملة لهذا البروتوكول في وثيقة RFC 7489 الرسمية.

تحديات الإرسال من الخليج إلى العالم

بالنسبة لأصحاب الأعمال في السعودية والإمارات وبقية دول الخليج، فإن استخدام الاستضافة في ألمانيا يوفر استقراراً تقنياً كبيراً، ولكن يجب الانتباه إلى أن زمن الاستجابة (Latency) بين الخليج وألمانيا (الذي يقدر بحوالي 100-130 ملي ثانية) لا يؤثر على تسليم البريد، بل ما يؤثر هو سمعة عنوان IP. لذا، فإن ضبط سجل rDNS (Reverse DNS) ليتطابق مع اسم مضيف خادم البريد (Hostname) هو خطوة مكملة لسجلات SPF وDKIM.

إذا كنت تدير خادم افتراضي خاص، تأكد من أن سجل PTR الخاص بك يشير إلى نطاقك. بدون هذا التطابق، قد ترفض خوادم الاستقبال الكبرى رسائلك حتى لو كانت سجلات DMARC صحيحة. كما يجب مراعاة قوانين حماية البيانات المحلية مثل PDPL عند التعامل مع بيانات البريد الإلكتروني، حيث أن توفر اتفاقية معالجة البيانات (DPA) يساعدك في الامتثال لهذه المتطلبات عند تخزين البيانات في خوادمنا الألمانية.

خطوات التحقق والمعالجة

إذا واجهت مشكلة في وصول البريد، ابدأ دائماً بفحص الترويسات (Headers) للرسالة المستلمة. ابحث عن حقل Authentication-Results. سيخبرك هذا الحقل بوضوح بنتيجة فحص كل سجل:

  • spf=pass تعني أن عنوان الخادم معتمد.
  • dkim=pass تعني أن التوقيع صحيح.
  • dmarc=pass تعني أن السياسة تم تطبيقها بنجاح.

عند استخدام سيرفر ويندوز لإرسال رسائل عبر برمجيات خاصة، تأكد من أن تطبيقك يدعم التوقيع الرقمي DKIM برمجياً أو أنك تستخدم SMTP Relay يقوم بهذه المهمة نيابة عنك. توفر لوحة التحكم واجهة سهلة لتوليد هذه المفاتيح بنقرة واحدة، مما يقلل من احتمالية الخطأ اليدوي في كتابة السجلات الطويلة داخل إعدادات النطاق الخاص بك.

في حال استمرار المشاكل، يرجى التواصل مع فريق الدعم الفني لدينا باللغة الإنجليزية، مع تزويدنا بالرسالة الخطأ كاملة (Bounce message) ونتائج أمر dig للسجلات التي قمت بضبطها، لنتمكن من مراجعة الإعدادات على مستوى خادم الأسماء والتأكد من مطابقتها للمعايير العالمية.

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

أسئلة شائعة3
u0645u0627 u0627u0644u0641u0631u0642 u0628u064au0646 u0627u0644u0641u0634u0644 u0627u0644u0645u0631u0646 ~all u0648u0627u0644u0641u0634u0644 u0627u0644u0635u0627u0631u0645 -all u0641u064a u0633u062cu0644 SPFu061f

u0627u0644u0641u0634u0644 u0627u0644u0645u0631u0646 ~all u064au062eu0628u0631 u0627u0644u062eu0627u062fu0645 u0627u0644u0645u0633u062au0644u0645 u0628u0642u0628u0648u0644 u0627u0644u0631u0633u0627u0644u0629 u0645u0639 u0648u0633u0645u0647u0627 u0643u0645u0634u0628u0648u0647u0629 u0625u0630u0627 u0641u0634u0644 u0627u0644u0641u062du0635u060c u0628u064au0646u0645u0627 u0627u0644u0641u0634u0644 u0627u0644u0635u0627u0631u0645 -all u064au0637u0644u0628 u0645u0646u0647 u0631u0641u0636u0647u0627 u062au0645u0627u0645u0627u064b. u0646u0648u0635u064a u0628u0627u0633u062au062eu062fu0627u0645 u0627u0644u0641u0634u0644 u0627u0644u0645u0631u0646 u0641u064a u0627u0644u0628u062fu0627u064au0629 u0644u062au062cu0646u0628 u0641u0642u062fu0627u0646 u0627u0644u0631u0633u0627u0626u0644 u0627u0644u0634u0631u0639u064au0629 u062du062au0649 u062au062au0623u0643u062f u0645u0646 u0634u0645u0648u0644 u062cu0645u064au0639 u0645u0635u0627u062fu0631 u0627u0644u0625u0631u0633u0627u0644.

u0644u0645u0627u0630u0627 u062au0638u0647u0631 u0631u0633u0627u0644u0629 u0641u0634u0644 DKIM u0631u063au0645 u0625u0636u0627u0641u0629 u0627u0644u0633u062cu0644 u0641u064a DNSu061f

u0627u0644u0633u0628u0628 u0627u0644u0623u0643u062bu0631 u0634u064au0648u0639u0627u064b u0647u0648 u0639u062fu0645 u0627u0643u062au0645u0627u0644 u0627u0646u062au0634u0627u0631 u0633u062cu0644u0627u062a DNS (Propagation) u0623u0648 u0648u062cu0648u062f u062eu0637u0623 u0641u064a u0627u0644u0640 selector u0627u0644u0645u0633u062au062eu062fu0645. u062au0623u0643u062f u0645u0646 u0623u0646 u0627u0644u0645u0641u062au0627u062d u0627u0644u0639u0627u0645 u0627u0644u0645u0646u0634u0648u0631 u064au062au0637u0627u0628u0642 u062au0645u0627u0645u0627u064b u0645u0639 u0627u0644u0645u0641u062au0627u062d u0627u0644u062eu0627u0635 u0627u0644u0645u0648u062cu0648u062f u0639u0644u0649 u0627u0644u062eu0627u062fu0645u060c u0648u0623u0646 u0627u0644u0633u062cu0644 u0645u0646 u0646u0648u0639 TXT u062au0645 u0625u0646u0634u0627u0624u0647 u062au062du062a u0627u0644u0639u0646u0648u0627u0646 u0627u0644u0635u062du064au062d.

u0647u0644 u064au063au0646u064a u0633u062cu0644 SPF u0639u0646 u0648u062cu0648u062f u0633u062cu0644 DKIMu061f

u0644u0627u060c u0641u0643u0644u0627u0647u0645u0627 u064au0643u0645u0644 u0627u0644u0622u062eu0631. u0633u062cu0644 SPF u064au062du0645u064a u0645u0646 u0627u0646u062au062du0627u0644 u0639u0646u0648u0627u0646 IPu060c u0628u064au0646u0645u0627 u064au062du0645u064a DKIM u0645u062du062au0648u0649 u0627u0644u0631u0633u0627u0644u0629 u0645u0646 u0627u0644u062au0644u0627u0639u0628. u062au0637u0644u0628 u0645u0639u0638u0645 u062eu062fu0645u0627u062a u0627u0644u0628u0631u064au062f u0627u0644u0643u0628u0631u0649 u0648u062cu0648u062f u0627u0644u0633u062cu0644u064au0646 u0645u0639u0627u064b u0628u0627u0644u0625u0636u0627u0641u0629 u0625u0644u0649 DMARC u0644u062au0639u0632u064au0632 u0645u0648u062bu0648u0642u064au0629 u0648u0635u0648u0644 u0627u0644u0631u0633u0627u0626u0644.