يعرض لك برنامج البريد مرسِلًا وتاريخًا وموضوعًا. ثلاثتها أسطر كتبها البرنامج المرسِل، ولا شيء في الصيغة يمنع أن يكون أيٌّ منها كاذبًا. في كتلة الترويسات كذلك سجلّ لما جرى للرسالة في الطريق، كتبته آلات لا المرسِل، وذلك هو الجزء الذي يستحقّ القراءة.
سطر From لا يثبت شيئًا
From: حقل ترويسة مثل Subject:. يكتبه ما يُنشئ الرسالة، وقد يقول أي شيء.
هو شيئان في وقت واحد — اسم معروض وعنوان — "Accounts Payable" <ap@supplier.example>. معظم البرامج تعرض الاسم وتخفي العنوان خلفه، وعلى الهاتف دائمًا، ولهذا لا تزال أقدم حيلة تعمل: ضع العنوان الذي يبدو صحيحًا في الاسم المعروض وشيئًا آخر في العنوان الحقيقي.
أمّا Reply-To: فحقل ثالث مستقلّ، وهو الذي يذهب إليه ردّك. فقد تعرض رسالةٌ عنوانًا، وتُرسَل من ثانٍ، وتوجّه الردود في صمت إلى ثالث، ولا شيء معطوب فيها.
ثمّة عنوان رابع لا يظهر في البرنامج إطلاقًا: مرسِل الغلاف، وهو الذي يُعطى أثناء محادثة SMTP. يسجّله الخادم المسلِّم عادةً في Return-Path: أعلى الكتلة. تذكّر هذا — فمعظم الالتباس حول SPF مصدره الجهل بوجوده.
سلسلة Received، تُقرأ صعودًا
كل خادم يتناول الرسالة يضيف سطر Received:، ويضيفه في أعلى الكتلة لا في أسفلها. فالسلسلة مقلوبة: أوّل سطر تراه هو آخر ما حدث، وأقدم محطّة في الأسفل.
Received: from mx.example-mail.net by imap.example-mail.net;
Tue, 4 Aug 2026 09:14:22 +0000
Received: from smtp-out-3.mailer-7x.co (smtp-out-3.mailer-7x.co [203.0.113.45])
by mx.example-mail.net with ESMTPS id 4Wq2Kd1f9c
for <you@example-mail.net>; Tue, 4 Aug 2026 09:14:21 +0000
Received: from workstation (unknown [198.51.100.9])
by smtp-out-3.mailer-7x.co; Tue, 4 Aug 2026 09:14:19 +0000اقرأ من الأسفل: شيء يسمّي نفسه workstation، على العنوان 198.51.100.9، سلّم الرسالة إلى smtp-out-3.mailer-7x.co. ثم مرّر ذلك الجهاز الرسالة إلى mx.example-mail.net، وهو خادم بريد المستلِم، من العنوان 203.0.113.45. ثم أتمّ التسليم الداخلي المهمّة بعد ثانية.
في السطر الواحد عُرفان يستحقّان المعرفة. فـfrom smtp-out-3.mailer-7x.co (smtp-out-3.mailer-7x.co [203.0.113.45]) ثلاث حقائق منفصلة: الاسم الذي أعلنه الجهاز المتّصل، والاسم الذي يعود إليه عنوانه في البحث العكسي، والعنوان نفسه. الخادم المستقبِل فحص الثاني والثالث؛ أمّا الأوّل فادّعاء. حين يختلف الاسم المعلن عن البحث العكسي، فذلك ظاهر هنا ولا يظهر في مكان آخر. أمّا unknown في ذلك الموضع فتعني أن البحث العكسي لم يجد شيئًا.
التوقيتات تتراجع كلما نزلت، والفجوات تفيد. تسع عشرة ثانية بين سطرين أمر عادي. أمّا أربع ساعات فتعني أن الرسالة قعدت في طابور في مكان ما، وهذا هو الجواب المعتاد عن «لماذا وصلت متأخّرة» ويأخذ عشر ثوانٍ لتجده.
الجزء من السلسلة الذي يمكن اختلاقه
هذا هو الحدّ الذي يهمّ، ومعظم شروح ترويسات البريد تتركه.
سطر Received: يضيفه أيّ خادم تناول الرسالة. فالخادم الذي يسيطر عليه المرسِل يستطيع أن يضيف ما شاء من الأسطر قبل الإرسال، وستجلس في أسفل السلسلة تبدو تمامًا كالأسطر الحقيقية. فاختلاق أصل معقول كتابةُ ثلاثة أسطر نصّ.
ما لا يمكن اختلاقه هو السطر الذي أضافه مزوّدك أنت، لأنه كتبه بعد أن رأى الاتّصال بنفسه. فللسلسلة إذًا حدّ فيها: كل ما فوق أوّل خادم تثق به فعلًا بيّنة، وكل ما تحت تلك النقطة رواية المرسِل عن نفسه.
يعني هذا عمليًّا أن السطر المفيد هو الذي سجّل فيه مزوّدك من اتّصل به — فعنوان IP في ذلك السطر حقيقي، مهما قالت العناوين تحته.
SPF وDKIM وDMARC
ثلاث آليات منفصلة، وسبب الالتباس فيها أن كلًّا منها تفحص شيئًا مختلفًا عن نطاق مختلف.
SPF قائمة مرسِلين مأذونين. ينشر النطاق سجلّ DNS يسمّي العناوين والمضيفات المسموح لها بالإرسال باسمه، فيقارن الخادم المستقبِل العنوان الذي اتّصل بتلك القائمة. أمّا ما يقارن القائمة به فهو مرسِل الغلاف — نطاق Return-Path — لا العنوان في سطر From.
DKIM توقيع. يوقّع النظام المرسِل المتنَ ومجموعةً مسمّاة من الترويسات بمفتاح خاصّ، ويرفق التوقيع في DKIM-Signature:، وفيه نطاق التوقيع في d= وأيّ مفتاح في s=. فيجلب المستقبِل المفتاح العامّ المطابق من DNS ذلك النطاق ويعيد حساب التوقيع. النجاح يعني أن الأجزاء الموقَّعة وصلت دون تبديل ووقّعها من يملك مفتاح ذلك النطاق. لا يقول شيئًا عن الترويسات التي لم يغطّها التوقيع.
DMARC تربط الاثنتين بما يقرؤه الإنسان فعلًا. تشترط أن تنجح SPF أو DKIM وأن يطابق النطاق الذي نجحت له النطاقَ في From الظاهر. تسمّى تلك المطابقة «المحاذاة»، وهي كل مقصد DMARC. ينشر النطاق كذلك ماذا يُفعل عند الإخفاق — p=none تعني بلّغ فقط، وp=quarantine تعني عاملها معاملة المشبوه، وp=reject تعني ارفضها أصلًا.
قراءة Authentication-Results
يشغّل مزوّدك الثلاث عند التسليم ويكتب النتيجة في ترويسة واحدة. هي أسرع ما يُقرأ في الكتلة متى عرفت شكلها.
Authentication-Results: mx.example-mail.net;
spf=pass (sender IP is 203.0.113.45) smtp.mailfrom=bounce.mailer-7x.co;
dkim=pass header.d=mailer-7x.co header.s=k1;
dmarc=fail (p=quarantine dis=none) header.from=yourbank.exampleنجاحان وإخفاق، والإخفاق هو الذي يحسم. نجحت SPF لنطاق bounce.mailer-7x.co. نجحت DKIM لنطاق mailer-7x.co. الرسالة تدّعي أنها من yourbank.example. لم يستوثق شيءٌ من ذلك النطاق في أي لحظة، فأخفقت DMARC في المحاذاة.
هكذا يبدو التزوير المتقن. سجّل المهاجم نطاقًا، ونشر له سجلّ SPF صحيحًا، وأعدّ توقيع DKIM كما ينبغي، وأرسل من بنيته هو. كل آلية عملت كما صُمّمت بالضبط. النتائج الثلاث كلها صادقة. الرسالة مع ذلك مزوّرة، والسطر الوحيد الذي يقول ذلك هو الثالث.
النتائج نفسها تستحقّ قراءة دقيقة:
- pass — جرى الفحص ونجح، للنطاق المذكور بجانبه. اقرأ النطاق دائمًا، لا الكلمة وحدها.
- fail — جرى الفحص وكان الجواب لا. يعني هذا في SPF أن النطاق ينشر قائمة وأن عنوان الإرسال ليس فيها، و
-allفي آخرها تقول عُدّ ذلك نهائيًّا. - softfail — ينشر النطاق قائمة تنتهي بـ
~all، ومعناها «ليس في القائمة، لكن لا ترفض بسببي». شائعة جدًّا ولا تفيد كثيرًا. - none — لم يُنشر شيء ليُفحص. لا سجلّ SPF ولا توقيع DKIM. غيابٌ لا إخفاق، وكثير من البريد المشروع لا يزال هكذا.
- neutral وtemperror وpermerror — النطاق امتنع صراحةً عن تأكيد شيء، أو أخفق بحث DNS في حينه، أو السجلّ معطوب. الأخير يعني عادةً أن أحدهم تجاوز حدّ العشر عمليات بحث في سجلّ SPF، وهو خطأ إعداد لا هجوم.
أين تكسر إعادةُ التوجيه هذا كلّه
القائمة البريدية أو عنوان إعادة التوجيه يمرّر الرسالة من خوادمه هو، فلا يعود عنوان الاتّصال عنوانَ المرسِل وتخفق SPF في الطريق. القوائم تميل كذلك إلى إضافة تذييل أو تغيير الموضوع، وذلك يغيّر بايتات كان توقيع DKIM يغطّيها، فتخفق DKIM أيضًا.
فالنتيجة بريد أصلي فيه إخفاقان، ولهذا لا يكون الإخفاق المجرّد دليلًا على شيء، ولهذا كل جواب جادّ هنا عن المحاذاة لا عن نتيجة مفردة.
ما لا تحتويه الترويسة
يجدر معرفة الحدود قبل البحث عن شيء لم يُكتب أصلًا.
عنوان المرسِل نفسه، غالبًا. فالبريد المكتوب في واجهة ويب تسلّمه خوادم المزوّد، وكبار المزوّدين كفّوا عن تسجيل عنوان من كتب الرسالة منذ سنين. فأسفل السلسلة بنيتهم هم، لا اتّصال شخص من بيته.
موقع جغرافي. عنوان IP في سطر Received يخصّ من يشغّله، والبحث الجغرافي عن عنوان مركز بيانات يقول لك أين مركز البيانات.
هل المحتوى صادق. الاستيثاق يجيب سؤالًا واحدًا: هل أذن النطاق بالرسالة. أمّا فاتورة أُرسلت فعلًا من حساب مورّد مخترَق فتنجح في كل شيء.
أن تقرأ واحدة بنفسك
كل برنامج يستطيع عرض الترويسات الخام — إظهار الأصل في جيميل، أو عرض المصدر أو خصائص في غيره — ومحلّل الترويسات هنا يرتّب سلسلة Received بترتيبها ويشرح سطر النتائج بجانبها.
هو يقرأ ما سجّله الخادم المستقبِل بدل إعادة تشغيل الفحوص، وذلك التمييز مقصود: فالتحقّق المستقلّ من SPF أو DKIM يعني سؤال DNS عمّا ينشره نطاق المرسِل اليوم، وذلك ما لا يستطيعه المتصفّح وما كان سيجيب على أي حال سؤالًا آخر — ماذا يقول السجلّ الآن، لا ماذا كان يقول حين وصلت الرسالة.
الكتلة كلها داخل ملف .eml، فيكفي فتح الملف. لا يحتاج أن يذهب إلى أي مكان، وهناك أسباب لألّا ترسله — فكتلة الترويسات قائمة بكل من كان في المحادثة.