@pfaffman نريد إنشاء نموذج بسيط يطالب المستخدم بأربعة أشياء:
المرسل
المستلم
الموضوع
النص
سيقوم المستخدم بملء هذه الحقول، ثم ينقر على زر لتشغيل نقطة نهاية ترسل البريد الإلكتروني.
على وجه التحديد، سيتضمن النموذج العناصر الأربعة، وبمجرد النقر على زر “إرسال”، سيتم استدعاء نقطة النهاية لإرسال الرسالة.
لست متأكدًا مما إذا كان هذا هو ما تبحث عنه بالضبط، ولكن الهدف الرئيسي هو السماح لمسؤول بإدخال نص (موضوع البريد الإلكتروني ونص الرسالة) والنقر على زر لإرساله إلى مستخدم في Discourse.
في المستقبل، نود توسيع هذا بحيث يمكن للمستخدم تشغيل رسائل متعددة من مرسل واحد إلى مستلمين متعددين. نريد معالجة معلمات مثل العدد الإجمالي للرسائل والتأخير بين كل رسالة، للتحكم في عدد الرسائل المرسلة ومدى تباعدها.
ربما نعود خطوة إلى الوراء ونصف المشكلة الفعلية التي تحاول حلها.
هل تقصد أنك تريد إرسال بريد إلكتروني مباشر (بحيث لا يكون الرسالة موجودة في Discourse)، أو أنك تريد إرسال رسالة خاصة تصل إلى المستخدم (والتي في معظم الحالات ستولد إشعارًا عبر البريد الإلكتروني).
هل تريد تغيير مرسل الرسالة الخاصة؟ يبدو أن هذا هو الشيء الوحيد المفقود من واجهة الرسائل الخاصة الحالية، هل هذا صحيح؟
شكرًا للتوضيح! لإعطاء مزيد من السياق، نحن نعمل مع قاعدة مستخدمين كبيرة ونرغب في إعادة جذب المستخدمين الذين لم يتفاعلوا مع التطبيق لفترة من الزمن. الهدف هو إرسال رسالة خاصة (PM) إلى عدد كبير من المستخدمين من مرسل معين، مع التحكم في عدة معلمات:
المُرسل: سيحدد المستخدم المسؤول اسم المستخدم للمرسل مباشرة في النموذج.
الموضوع والنص: يمكن للمسؤول تخصيص كل من موضوع الرسالة ونصها.
التحكم في الحجم: نريد السيطرة على عدد الرسائل المرسلة دفعة واحدة لتجنب إزعاج المستخدمين.
الجدولة الزمنية: المهم هو ضمان التحكم في سرعة إرسال الرسائل، لتجنب إغراق نطاق البريد الإلكتروني الخاص بنا والتعرض للتصنيف كمرسل غير مرغوب فيه. سنحتاج إلى القدرة على توقيت الرسائل بفاصل زمني محدد بين كل رسالة وأخرى لمنع استدعاء مرشحات spam.
الهدف النهائي هو جعل المستخدمين يفتحون الرسالة الخاصة (التي ستولد أيضًا إشعار بريد إلكتروني) وتحفيزهم للعودة إلى التطبيق.
لدينا بالفعل سكريبت بسيط بلغة Ruby قادر على تنفيذ هذه المهمة ويعمل بشكل كامل. حاليًا، نقوم بتنشيطه يدويًا عبر الوصول إلى الجهاز الافتراضي عبر SSH، وهو أمر مرهق بعض الشيء. ما نرغب في القيام به الآن هو تكييف هذا السكريبت ليصبح إضافة (بلجن) بحيث يتمكن المسؤول من تفعيله بسهولة عبر واجهة المستخدم، مع القدرة على إدخال الإعدادات (المُرسل، الموضوع، النص، عدد الرسائل، الفاصل الزمني بينها، وغيرها) مباشرة من واجهة الإدارة.
نود تحقيق هذا عبر واجهة إضافة تسمح للمسؤول بإدخال هذه الإعدادات بسهولة، تفعيل العملية، ومتابعة تقدم عملية إرسال الرسائل.
ربما سأفعل شيئًا مثل أن يكون لدى المستخدمين في مجموعة وتخطط لإرسال إلى جميع المستخدمين في المجموعة. عندما يتم إرسال رسالة، ستضبط قيمة في user_custom_field وتستخدم موضوع موجود كنص ومرسل للرسالة. ستعمل وظيفة كل فترة وترسل عدد الرسائل التي تريدها. سأضع المجموعة وقيمة الحقل المخصص في الإعدادات.
ثم لن تحتاج إلى واجهة أو إلى إنشاء مسار جديد على الإطلاق؛ يمكنك فقط استخدام الإعدادات الحالية. ويمكنك رؤية ما حدث باستخدام مستكشف البيانات، لذلك لن تحتاج إلى تطوير واجهة لأي منهما.
لكن إذا كنت تريد إنشاء بعض الحقول التي يدخلها الناس في تجربة المستخدم، يجب عليك الاطلاع على شيء Form الذي ذكرته سابقًا.