لدينا سير عمل نستخدم فيه 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) لهذا التغيير!
وكيف يحدث ذلك بالضبط؟ ماذا لو كذب المُرسِل ببساطة واختلق بريدًا إلكترونيًا تم إرساله إليه فقط على سبيل المثال؟
إذًا يمكنهم أيضًا حذف كل شيء Resent- والمحتال في المقام الأول، دون الادعاء بأنه تم إرساله إليهم أولاً.
أعتقد أن لديك تصورًا خاطئًا لما تفعله رؤوس Resent- - وهي في الواقع لا تفعل شيئًا على الإطلاق. لا تؤخذ في الاعتبار عند فحص خوادم البريد لـ SPF أو DKIM أيضًا، لذا فإن انتحال بريد مُعاد إرساله بنفس صعوبة انتحال البريد الأصلي.
في حالتي، سيتم حظر بريد مُعاد إرساله من شخص غريب خارجي بواسطة مرشح البريد العشوائي بسبب انتهاك SPF. السبب في أن السيناريو الخاص بي مع الوكلاء الذين يعيدون إرسال البريد إلى Discourse يعمل هو أنهم معفيون من هذه الفحوصات بعد المصادقة على خادم البريد الخاص بنا.
السماح لـ Discourse باستخدام رأس Resent-To هو مجرد ميزة راحة، لأنه كيف تنشئ عملاء البريد العاديون نسخة مزيفة من بريد تلقوه سابقًا. لا يغير شيئًا بشأن المصادقة.