لدينا بعض السكربتات التي تولد رسائل بريد إلكتروني إلى فئات Discourse الخاصة بنا لتتبع أحداث المشروع تلقائيًا، مثل نتائج الاختبارات، أو قضايا المستخدمين الجديدة التي يتم رفعها، وما إلى ذلك. كنت أظن بسذاجة أنه إذا ظهرت رسالتان بنفس عنوان الموضوع (مثل “اختبار linux64”)، فستنتهي تلقائيًا في نفس الموضوع؛ ومع ذلك، يبدو أننا نحصل على موضوع منفصل لكل رسالة من هذه الرسائل. (الرد على موضوع عبر البريد الإلكتروني يبقيه في نفس الموضوع، كما هو متوقع بالطبع).
عند البحث في المنتديات حول هذا الأمر قليلًا، صادفت إشارات إلى إعدادات “السماح بمواضيع بعناوين متطابقة ومكررة” و"السماح بمواضيع بعناوين متطابقة ومكررة إذا كانت الفئة مختلفة". إلى فاجأتني، لم يكن أي منهما مفعلًا في موقعنا، ومع ذلك لدينا مواضيع بنفس العنوان بسبب هذه السكربتات. هل من الممكن أن تنطبق هذه الإعدادات فقط على المواضيع المُنشأة من واجهة الموقع، وليس من البريد الإلكتروني؟
على أي حال، هل توجد طريقة لتكوين موقع Discourse بحيث تُدمج الرسائل المرسلة إلى فئة معينة بعنوان معين تلقائيًا في موضوع واحد بدلاً من أن تؤدي إلى موضوع لكل رسالة بريد إلكتروني؟ (أفهم أن هذا قد يسبب بعض الارتباك الطفيف إذا قام مستخدمان بنشر مواضيع عبر البريد الإلكتروني بنفس العنوان تمامًا، لكن ذلك يبدو لي مقايضة معقولة).
بعد تجربة الأمر قليلاً، يبدو لي أن إعداد “السماح بالمواضيع ذات العناوين المتطابقة والمكررة” ينطبق فقط على المواضيع المنشأة عبر الموقع الإلكتروني، وليس تلك المستلمة عبر البريد الإلكتروني. لقد فتحت طلب ميزة لتمديد المواضيع عندما يتطابق موضوع البريد الإلكتروني مع عنوانها بدلاً من إنشاء العديد من المواضيع ذات العنوان المتطابق.
إذا لم تكن تنظر إلى الموقع، فكيف تعرف ما إذا كان العنوان قد استُخدم بالفعل؟
لست متأكدًا تمامًا من فهمي لسؤالك (لأنني أقلق من أنني أكرر نفسي)، لكنني سأحاول الإجابة:
السيناريو الذي يُحفّز هذا السؤال في موقع Discourse الخاص بنا هو السيناريو الذي تُنشأ فيه المنشورات بواسطة سكريبتات تستخدم عناوين مواضيع قابلة للتوقع (مثل “اختبار linux64”)، حيث يكون الهدف منها تجميعها معًا ضمن موضوع واحد. وبالنسبة لهذه السكريبتات، لا يهم ما إذا كان العنوان قد استُخدم من قبل أم لا، طالما أن السلوك هو: “إذا كان موضوع بعنوان موضوع البريد موجودًا بالفعل، أضف المنشور إلى ذلك الموضوع بدلاً من إنشاء موضوع جديد؛ وإذا لم يكن موجودًا، أنشئ موضوعًا جديدًا بعنوان موضوع البريد كعنوان له.”
وبعد أن نتجاوز ذلك قليلاً إلى افتراضات نظرية، يمكنني تخيل مستخدم يعمل ضمن بيئة آمنة ولا يُسمح له بالتفاعل المباشر مع المواقع الإلكترونية؛ لكن مسؤولي الأنظمة لديه يعكسون محتوى موقع إلكتروني معين إلى بيئته الخاصة للتصفح فقط للقراءة. ومع معرفة عنوان موضوع معين، يمكن لمثل هذا المستخدم إضافة منشور جديد إلى ذلك الموضوع عبر البريد الإلكتروني دون الحاجة إلى وجود بريد إلكتروني يتعلق بذلك الموضوع في صندوق الوارد الخاص به للرد عليه.
هل فكرت في استخدام شيء آخر غير SMTP لتسليم الرسائل؟
لم نفكر في ذلك، لكننا بالتأكيد مستعدون للنظر فيه إذا كان ذلك يُعدّ من أفضل الممارسات. للتأكد من فهمي الصحيح، هل تقترح أن تقوم نصوصنا البرمجية بالنشر على منصة Discourse من خلال التفاعل مع الموقع عبر HTML كما يفعل الإنسان؟ أم أن مواقع Discourse تدعم واجهة برمجية (API) يمكن للنصوص البرمجية استهدافها مباشرة؟ إذا كان لديك إرشادات أو أمثلة حول كيفية التعامل مع هذا الأمر، فستكون مفيدة للغاية؛ فنحن لا نزال جديدين تمامًا في إدارة Discourse.
أو، كنت أتساءل عما إذا كان هناك حيلة أخرى يمكن استخدامها في رؤوس البريد الإلكتروني لجعل Discourse تضيف الرسائل إلى الموضوع الحالي بدلاً من إنشاء موضوع جديد. أفترض أن جعل سطر الموضوع “Re: linux64 testing” غير كافٍ، وأن عنوان “Reply-to:” و/أو بيانات التعريف في رأس البريد الإلكتروني هي التي تجعل الرد يُرفق بموضوع موجود بدلاً من بدء موضوع جديد؟ (في هذه الحالة، يمكننا إنشاء مواضيع يدويًا لكل سطر موضوع محتمل للنصوص البرمجية في التصنيف، وتحديد بيانات التعريف تلك، ثم تضمينها في نصنا البرمجي، لكن هذا سيبدو معقدًا للغاية إذا كانت هناك طريقة مدمجة لدمج الرسائل تلقائيًا في موضوع موجود بناءً على سطر الموضوع، خاصةً للنصوص البرمجية التي قد تولد أسطر مواضيع جديدة مع مرور الوقت).
هذا سيناريو محدد جدًا لطلب تغيير سلوك كامل.
ربما، لكن من الإنصاف القول إنني في المنشور الأصلي كنت أسأل فقط عما إذا كانت هناك طريقة لتحقيق ما نريده، وأعربت عن حيرتي من أننا نلقِ مواضيع متعددة بنفس العنوان رغم إلغاء خيار “السماح بمواضيع مكررة”. لم أتمكن من العثور على أي توثيق يشير إلى أن هذا هو السلوك المتوقع، وقلت في نفسي أنه بما أن Discourse ترفض الرسائل لأسباب متنوعة (مثل: “يبدو أن سطر الموضوع هذا ليس جملة”)، لربما كنا نتلقى رسائل رفض تقول: “هذا عنوان الموضوع موجود بالفعل ضمن هذا التصنيف” (ليس أن ذلك كان سيسعدني أكثر، لكنه كان سيبدو أكثر اتساقًا مع عناوين مربعات الاختيار).
لكنني أيضًا لا أعتقد أن طلب تغيير السلوك غريب إلى هذا الحد: أعتقد أن قدرة مواقع Discourse على قبول المنشورات عبر البريد الإلكتروني أمر رائع وقوي للغاية. وفي حالتنا، هذا يمثل 80% من الحل الجيد لجعل النصوص البرمجية تولد تحديثات لمواضيع Discourse الموجودة. وطلب الميزة بدا مشابهًا لطلبات أخرى رأيتها على Discourse-meta وتم تنفيذها، لأنه يبدو مفيدًا بوضوح (حيث أن العديد من المشاريع لديها نصوص برمجية تولد رسائل بريدية) ولم يبدُ لي أنه يتعارض بطبيعته مع فلسفة Discourse (ورغم ذلك، نحن جدد في جانب الإدارة). هذا لا يعني أن الأمر بديهي تمامًا بأي حال، بل فقط أن طرح السؤال لم يكن يبدو لي غير معقول.
عندما يكون المستخدم هو من يتفاعل مع الموقع، تُستخدم مفاتيح الرد عبر البريد الإلكتروني للحفاظ على كل شيء ضمن نفس الموضوع. ستستخدم هنا وضع قائمة البريد للحصول على مفاتيح الرد داخل البيئة الآمنة.
ستقوم وظيفة “الإدخال عبر البريد الإلكتروني” (مختلفة عن “الرد عبر البريد الإلكتروني”) حاليًا فقط بإنشاء مواضيع جديدة، ولن تضيف أبدًا إلى موضوع موجود مسبقًا.
ظننت أنني فهمت حالة Discourse بعد تعليقاتكما على هذه المشكلة الأسبوع الماضي (والتي يمكن تلخيصها بأنها: “بالتصميم، تُقبل العناوين المكررة عند إرسالها عبر وظيفة البريد الوارد بغض النظر عن حالة إعداد ‘السماح بالمواضيع المكررة’، لأنه ليس واضحًا ما يمكن للموقع فعله آخر؟”). لكن اليوم، وجدت نفسي في حيرة لأن نصوصنا البرمجية استلمت ردّ رفض لبعض الرسائل الإلكترونية، مفاده:
العنوان مستخدم بالفعل
هل أسأت فهم الوضع الحالي، أم أن شيئًا ما تغير من جانبكما منذ الأسبوع الماضي؟
حدثت بعض التغييرات من جانبنا قد تفسر تغير السلوك:
جعلت عنوان البريد الإلكتروني الذي ترسل منه نصوصنا البرمجية “مستخدمًا معروفًا” على موقع Discourse، وإلا كنت أتلقى ردود رفض متقطعة، لذا فكرت في منحه مستوى ثقة أعلى لتجاوز ذلك (في رسائلي السابقة، كانت النص البرمجي يتصرف كـ “مستخدم مجهول”).
عطلت قدرة المستخدمين المجهولين على النشر في هذه الفئة الآن بعد أن أصبح نصنا البرمجي مستخدمًا معروفًا.
بافتراض عدم حدوث أي تغيير من جانبكما، هل من الصحيح أن المستخدمين المسجلين يُخضعون لمعايير أعلى فيما يتعلق بعدم القدرة على إرسال مواضيع عبر البريد بعناوين مكررة مقارنة بالمستخدمين المجهولين؟ وهل هناك مبرر لهذا الاختيار؟ (أتوقع عمومًا أن تكون قدرات المستخدم المسجل تتجاوز قدرات المستخدم المجهول).