أعتذر مقدمًا عن بعض النبرة أدناه. أبدو منفعلًا،
لأنني منفعل قليلاً.
بقلم مايكل براون عبر Discourse Meta في 27 يوليو 2022 14:06:
آسف، أنا فقط ألحق بالركب الآن، إليك بعض الأفكار، بعضها
تم معالجتها بالفعل…[اقتباس=“Cameron Simpson، post:8، topic:233499، username:cameron-simpson”]
يبدو أن هذا الالتزام الثاني يعالج مشكلة أخرى واجهناها: إذا كان
تم إرسال منشور من بريد إلكتروني، فإن معرف الرسالة الصادر إلى مستخدمي البريد الإلكتروني هو
ليس معرف الرسالة للرسالة المصدر من المؤلف.
[/اقتباس][اقتباس=“Cameron Simpson، post:11، topic:233499، username:cameron-simpson”]
Message-IDهو معرف فريد للرسالة
[/اقتباس]الصعوبة هنا هي أن ما يتم إرساله خارج من Discourse هو رسالة مختلفة عن الواردة. لديها بيانات وصفية مختلفة (لهذا الغرض، إلى/من/الرد على/إلغاء الاشتراك/إلخ) وجسم مختلف (يتم تخصيصه لكل مستخدم (أعتقد؟ ألا يحدث هذا في وضع القائمة البريدية؟)).
ما هي الرسالة بالضبط؟ بالنظر إلى 5322 كحقيقة مطلقة:
تتكون الرسالة من حقول رأس، تليها اختياريًا جسم الرسالة.
يوفر حقل “Message-ID:” معرفًا فريدًا للرسالة يشير إلى إصدار معين لرسالة معينة.
[تأكيد مني]هذا “الإصدار المعين” هو ما يجعلني أعتقد أنه سيكون من غير المناسب إعادة إرسال رسالة واردة بمعرف رسالة مختلف. على الرغم من ذلك، إذا غيرت وجهة نظرك من Discourse كـ “برنامج منتدى” إلى Discourse كـ “برنامج قائمة بريدية” فإنه نوعًا ما منطقي، لذلك أفهم وجهة نظرك.
حسنًا، للأسف يعتمد هذا على قراءة حرفية مفرطة، ربما
قراءة سياق غير موجود.
يتم تعديل رؤوس كل رسائل البريد الإلكتروني أثناء مرور نظام البريد بها.
إذا لم يكن هناك شيء آخر، تتم إضافة رؤوس Received: في كل خطوة، و
تضيف العديد من الأنظمة رؤوسًا مختلفة تشير إلى نتائج تصفية البريد العشوائي
والتوقيعات. لا يؤدي أي من هذه إلى تعديل معرف الرسالة، وفي الواقع
سيؤدي القيام بذلك إلى جعل معرف الرسالة غير فعال تمامًا.
فيما يتعلق بالمحتوى، كما ذكرنا سابقًا، تضيف جميع القوائم البريدية تقريبًا
محتوى إلى نص الجسم، عادةً تذييل برابط إلى صفحة مسؤول القائمة
أو رابط إلغاء الاشتراك. لا يؤدي ذلك أيضًا إلى تغيير معرف الرسالة.
في الواقع، لا شيء تقريبًا يقوم بإعادة توجيه رسالة يغير معرف الرسالة.
لأن ذلك سيكسر التجميع والكشف عن التكرارات لعملاء المستخدم النهائي.
أرى أنك تستمر في اقتباس ما كنت سأستشهد به للتو ![]()
5322 يقول أيضًا:
هناك العديد من الحالات التي يتم فيها “تغيير” الرسائل، ولكن تلك التغييرات لا
تشكل تجسيدًا جديدًا لتلك الرسالة، وبالتالي فإن الرسالة
لن تحصل على معرف رسالة جديد. على سبيل المثال، عندما يتم إدخال الرسائل
في نظام النقل، غالبًا ما يتم تمهيدها بـ
حقول رأس إضافية مثل حقول التتبع (الموصوفة في القسم 3.6.7)
وحقول إعادة الإرسال (الموصوفة في القسم 3.6.6). إضافة مثل هذه الرؤوس
لا يغير هوية الرسالة وبالتالي يتم الاحتفاظ بـ “Message-ID:” الأصلي.
في جميع الحالات، المعنى الذي
يرغب مرسل الرسالة في نقله (أي، ما إذا كانت هذه هي نفس الرسالة
أو رسالة مختلفة) هو ما يحدد ما إذا كان
حقل “Message-ID:” يتغير، وليس أي اختلاف نحوي معين يظهر
(أو لا يظهر) في الرسالة.أفترض أن الأمر يتعلق بما إذا كان مرسل الرسالة يتغير عندما يرسلها Discourse؟
أعتقد أنك أسأت قراءة الأمور هنا. دعني أؤكد:
في جميع الحالات، المعنى الذي
يرغب مرسل الرسالة في نقله (أي، ما إذا كانت هذه هي نفس الرسالة
أو رسالة مختلفة) هو ما يحدد ما إذا كان
حقل “Message-ID:” يتغير
المرسل هو المؤلف، وليس MTA مثل Discourse.
إذا قمت بالنشر إلى Discourse عبر البريد الإلكتروني، فأريد أن تصل رسالتي إلى القراء
كما هي، من الناحية الدلالية. أي ملحقات مثل روابط إلغاء الاشتراك لا تغير
دلالات ما قلته في رسالتي.
إنها لا تزال نفس الرسالة.
ربما يجب أن نستخدم Resent-Message-ID وأصدقائه؟
بالتأكيد لا. إنها لـ مستخدم يعيد إرسال رسالة. على سبيل المثال، إذا قمت بإعادة توجيه رسالة إلى شخص آخر. إنها ليست لوسطاء البريد (مثل القوائم و Discourse).
[اقتباس=“Cameron Simpson، post:8، topic:233499، username:cameron-simpson”]
يبدو أنReferencesموجود أيضًا الآن في RFC5322
[/اقتباس]لقد كان موجودًا دائمًا، منذ 822. ولكن كما تقول لاحقًا، نعم تم تحديثه.
أوتش. اعتقدت أنه كان خاصًا بـ USENET في ذلك الوقت. أنا مصحح.
5322 يتحدث أيضًا مباشرة عن كيفية استخدام Discourse و Github له:
قد يتم استخدام حقل “In-Reply-To:” لتحديد الرسالة (أو الرسائل) التي
الرسالة الجديدة هي رد عليها، بينما قد يتم استخدام حقل “References:” لـ
تحديد “موضوع” محادثة.ربما بشكل غير صحيح قليلاً، ربما بسبب عدم وجود “معرف موضوع” مناسب. ولكن قد لا يكون هذا هو التفسير الذي قصده مؤلفو RFC… فهو لا يعالج الرسائل التي تحتوي على “References” ولكن بدون “In-Reply-To”.
يقول لي أن الحقلين يغطيان نفس المعلومات:
Referencesيظهر موضوعًا خطيًا (عادةً) يعود إلى المنشور الأصليIn-Reply-Toيظهر الأصل، ويشير إلى نفس الموضوع بشكل مجمع مع الرسائل السابقة التي تعود إلى المنشور الأصلي
[اقتباس=“Martin Brennan، post:19، topic:233499، username:martin”]
هذا مثير للاهتمام، اعتقدت أن كل مستلم للبريد الإلكتروني يجب أن يكون لديهMessage-IDفريد؟ في الواقع أعتقد أن هذا هو السبب الذي دفعنا إلى إضافة التفرد إلىMessage-IDلكل مستلم، لتجنب سلوكيات البريد العشوائي، بالنظر إلى موضوعنا الداخلي. ربما يمكن لـ @supermathie ، الذي هو في فريق البنية التحتية لدينا وكان يقوم بالكثير من الاختبارات مع البريد الإلكتروني في وقت سابق من هذا العام، أن يساهم هنا أيضًا؟
[/اقتباس]الجزء الصعب في هذا هو أننا لا نرسل بريدًا إلكترونيًا واحدًا، بل نرسل N - واحد لكل مستلم - حتى يمكن أن تكون بياناتهم الوصفية الفردية (إلغاء الاشتراك، إلخ) صحيحة.
هذا ليس صعبًا. معنى الرسائل هو نفسه،
التخصيصات طفيفة وغير ذات صلة دلاليًا. إنها لا
تستدعي معرفات رسائل جديدة أو مميزة.
ونعم، رأيت مؤشرات قوية أثناء الاختبار أن تحديد البريد العشوائي سيرتبط بمعرف الرسالة. إذا تمت رؤيته مرة أخرى لاحقًا (نفس المستخدم أو مستخدم مختلف) فمن المرجح جدًا أن يتم تمييزه كبريد عشوائي.
هل يمكنك إظهار بعض هذه الحالات. لأن معرفات الرسائل تسمح
إزالة التكرار على مستوى المستخدم النهائي. وخذ في الاعتبار أن العديد من
“مكافحة البريد العشوائي” هي هراء مضلل. عدد الأشياء التي تم رفضها كبريد عشوائي محتمل لأسباب زائفة تمامًا… كسر البريد الإلكتروني للعمل حول تصفية البريد العشوائي المعطل هو خيار سيء.
حتى يومنا هذا، لا أقوم أبدًا بنسخ الأشخاص الذين لديهم عناوين Gmail لأن تصفية البريد العشوائي في Gmail تعرفني وتسقط الأشياء. إذا أرسلت إلى القائمة فقط، فإنهم يحصلون عليها. إذا قمت بنسخ عنوان Gmail الآخر، فإنه (أ) يميزه كبريد عشوائي و (ب) ثم يميز أيضًا رسالة القائمة البريدية كبريد عشوائي (نفس معرف الرسالة!) لا يرى المستخدم النهائي رسالتي. هذا المنطق زائف وغير قابل للإصلاح تمامًا.
[اقتباس=“Cameron Simpson، post:22، topic:233499،
username:cameron-simpson”]
لذلك سأكون بخير تمامًا إذا أضفت رابط إلغاء الاشتراك الخاص بك الخاص بالمستلم وحافظت على معرف الرسالة الأصلي. الفوائد تفوق بكثير فقدان التجميع إذا أعطيت كل نسخة من الرسالة معرف رسالة فردي.
[/اقتباس]الفوائد هنا، بصراحة، تدور بالكامل حول تجميع رسائل البريد الإلكتروني بشكل صحيح في بعض عملاء البريد على حساب قابلية التسليم.
تنهد. لجميع عملاء البريد الإلكتروني. وسبب رئيسي يقول الناس في Pythonland أنهم لن ينتقلوا إلى Discourse هو أن تجميع البريد الإلكتروني معطل. لا يستخدم العديد من الأشخاص المنتديات، لأن كل منتدى يتطلب منهم زيارته. البريد الإلكتروني يأتي إليهم، يمكنهم استخدام قارئهم المفضل ومحررهم المفضل، ويسمح التجميع للأشخاص برؤية تدفق المناقشة بوضوح. عندما يعمل.
topic/#{topic_id}/#{post_id}.s#{sender_user_id}r#{receiver_user_id}الحالي على الأقل يجعله متسقًا لمستخدم في صندوق الوارد الخاص به. الافتراض
أكبر مخاوفي هو قابلية التسليم - من الصعب بما فيه الكفاية تسليم البريد الإلكتروني عندما لا يكون هناك أي رؤية من مقدمي الخدمة الرئيسيين.
أود أن أرى دليلًا. القوائم البريدية تفعل هذا بشكل صحيح في جميع أنحاء الكوكب. Discourse بالتأكيد وبشكل موضوعي يكسر هذا. أحاول إصلاحه.
دعني أكرر المشكلتين الأساسيتين هنا:
- يستشهد
In-Reply-ToوReferencesالخاص بالمنشور الأصلي بمعرف رسالة “موضوع” وهمي “قبل المنشور الأصلي”، لذلك لا يمتلك أي مستخدم بريد إلكتروني موضوعًا برسالة بداية (المنشور الأصلي) - كل شيء بما في ذلك المنشور الأصلي يبدو كمتابعة - رسائل البريد الإلكتروني المستلمة عبر Discourse ورسائل البريد الإلكتروني المستلمة مباشرة على سبيل المثال عبر النسخ المتماثل لها معرفات رسائل مختلفة على الرغم من أنها نفس الرسالة من الناحية الدلالية؛ هذا يكسر التجميع وإزالة التكرار
لكنني أرى حجة قوية لجعل Discourse يتصرف بشكل أكبر مثل برنامج القائمة البريدية في وضع القائمة البريدية. @martin أعتقد أننا لا نخصص جسم الرسالة في وضع القائمة البريدية؟ هل تعتقد أنه من المنطقي اتخاذ نهج أكثر صرامة حول الحفاظ على معرفات الرسائل وإعادة استخدامها في وضع القائمة البريدية؟
هناك أشخاص في Pythonland وجدوا أن “وضع القائمة البريدية” كان أكثر من اللازم. يريدون الحصول على بريد إلكتروني لمواضيع مستهدفة ولكن ليس كل شيء. يجب أن تكون معالجة معرف الرسالة هي نفسها لجميع جوانب البريد الإلكتروني.
أنا شخص “وضع القائمة البريدية” على discuss.python.org. لكنني قمت بتشغيله هنا (discourse.org) وأوقفته فورًا. أحتاج إلى وضع مستهدف هنا.