تكريم Resent-* في مستلم البريد الإلكتروني

لدينا سير عمل نستخدم فيه Discourse كأرشيف بريد إلكتروني. لدينا عنوان بريد إلكتروني جماعي، ويقوم وكلاؤنا بنسخ هذا العنوان عند بدء سلسلة رسائل بريد إلكتروني مع عميل.

يعمل هذا بشكل رائع حتى يرد العميل على الوكيل تحديدًا، متجاهلاً جميع رؤوس النسخ (Cc) وحتى الرد على (Reply-To). يجب على الوكيل بعد ذلك إعادة توجيه البريد الإلكتروني (إعادة إرساله) إلى عنوان البريد الإلكتروني الجماعي. إعادة التوجيه هي الطريقة المفضلة هنا، بحيث يقوم Discourse بأرشفة البريد الإلكتروني الأصلي بما في ذلك جميع الرؤوس الأصلية والطوابع الزمنية وما إلى ذلك.

يتم إعادة توجيه البريد الإلكتروني عن طريق نسخ الرسالة بالضبط، وإضافة رؤوس Resent-From و Resent-To. يتم تجاهل هذه الرؤوس للأسف بواسطة Email::Receiver. يجب عليه ببساطة إلحاق جميع Resent-* بالحقول العادية المقابلة.

لقد بدأت في تنفيذ ذلك، ووصلت إلى مرحلة جعل create_incoming_email يأخذ الحقول في الاعتبار. يمكنني بعد ذلك رؤية رسائل البريد الإلكتروني، بما في ذلك المستلمين المأخوذين من Resent-To، في قائمة رسائل البريد الإلكتروني الواردة في Discourse.

ومع ذلك، ما لا أنجح فيه هو جعل get_all_recipients يحترم أيضًا حقول Resent-*. لقد أضفت resent-to resent-cc resent-bb إلى مصفوفة %i() لحقول البريد، لكنها لا تزال لا تبدو أنها تُرجع المستلمين من هذه الحقول.

نرحب بأي مساعدة، حتى أتمكن من تقديم طلب سحب (PR) لهذا التغيير!

يبدو هذا وكأنه وظيفة خطيرة وعرضة لانتحال الشخصية. كيف تقترح المصادقة على المُرسِل؟


أيضًا، لدى Discourse معالجة قائمة بالفعل للبريد الإلكتروني المُعاد توجيهه.

تبدو هذه وظيفة خطيرة جدًا وعرضة لانتحال الشخصية. كيف تقترح مصادقة المُعيد؟

مع ترويسة Resent-From. ولكن هذا لا يهم في الواقع؛ الجزء المثير للاهتمام هو ما إذا كان يمكن مصادقة المُرسل الأصلي، وليس المُعيد.

بالإضافة إلى ذلك، لدى Discourse معالجة موجودة للرسائل المُعاد توجيهها بالفعل.

فقط للرسائل المُعاد توجيهها المقتبسة. هذا له عدة مشاكل:

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

وكيف يحدث ذلك بالضبط؟ ماذا لو قام المُعيد الإرسال بالكذب ببساطة واختلق بريدًا إلكترونيًا يُفترض أنه أُرسل إليه فقط؟

وكيف يحدث ذلك بالضبط؟ ماذا لو كذب المُرسِل ببساطة واختلق بريدًا إلكترونيًا تم إرساله إليه فقط على سبيل المثال؟

إذًا يمكنهم أيضًا حذف كل شيء Resent- والمحتال في المقام الأول، دون الادعاء بأنه تم إرساله إليهم أولاً.

أعتقد أن لديك تصورًا خاطئًا لما تفعله رؤوس Resent- - وهي في الواقع لا تفعل شيئًا على الإطلاق. لا تؤخذ في الاعتبار عند فحص خوادم البريد لـ SPF أو DKIM أيضًا، لذا فإن انتحال بريد مُعاد إرساله بنفس صعوبة انتحال البريد الأصلي.

في حالتي، سيتم حظر بريد مُعاد إرساله من شخص غريب خارجي بواسطة مرشح البريد العشوائي بسبب انتهاك SPF. السبب في أن السيناريو الخاص بي مع الوكلاء الذين يعيدون إرسال البريد إلى Discourse يعمل هو أنهم معفيون من هذه الفحوصات بعد المصادقة على خادم البريد الخاص بنا.

السماح لـ Discourse باستخدام رأس Resent-To هو مجرد ميزة راحة، لأنه كيف تنشئ عملاء البريد العاديون نسخة مزيفة من بريد تلقوه سابقًا. لا يغير شيئًا بشأن المصادقة.

إعجاب واحد (1)