تمكين الرد عبر البريد الإلكتروني

لقد قمت بإعداد خادم البريد الخاص بنا لإعادة توجيه رسائل البريد الإلكتروني إلى Discourse الخاص بنا عبر HTTP باستخدام واجهة برمجة التطبيقات (API)، وهذا يعمل. أريد الآن تمكين reply_by_email حتى يتمكن المستخدمون من الرد على الرسائل مباشرة.

لذلك أحاول تمكين reply_by_email، لكن Discourse يرفض طلبي:

discourse(prod)> SiteSetting.reply_by_email_address
=> "reply+%{reply_key}@<our-valid-domain>.de"
discourse(prod)> SiteSetting.email_in
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
lib/site_settings/type_supervisor.rb:271:in `validate_value': reply_by_email_enabled: يجب عليك تمكين الاستقصاء اليدوي أو POP3 أو تمكين مستقصي بريد مخصص قبل تمكين الرد عبر البريد الإلكتروني. (Discourse::InvalidParameters)
	from lib/site_settings/type_supervisor.rb:177:in `to_db_value'
	from lib/site_setting_extension.rb:623:in `add_override!'
	from lib/site_setting_extension.rb:990:in `block in setup_methods'
	from (discourse):15:in `<main>'

هل يمكن لأحد المساعدة؟

شكرا!
هانز

أود أن أبدأ بهذا الجزء من الرد الذي تلقيته: يجب عليك تمكين الاستطلاع اليدوي أو POP3 أو تمكين مستطلع بريد مخصص قبل تمكين الرد عبر البريد الإلكتروني

هذا يجعل الأمر يبدو وكأنك ربما لم تقم بإعداد POP3 أو mail-receiver قبل تجربة هذا. (من المحتمل أنك تريد mail-reciever.)

لست متأكدًا حتى من أين قد تكون وجدت أوامر Rails هذه، لأن كلتا العمليتين ستجعلك تستخدم إعدادات موقع المسؤول:

هذا صحيح - لم أقم بإعداد أي منهما ولكني قمت بإعداد خادم البريد Postfix الخاص بنا لإعادة توجيه رسائل البريد الإلكتروني إلى Discourse من خلال واجهة برمجة التطبيقات الخاصة به. لست متأكدًا مما إذا كان هذا تكوينًا مدعومًا، ولكني حقًا أرغب في تجنب تشغيل خادم بريد إلكتروني آخر (mail-receiver) إذا كان بإمكاني ذلك.

لا أجد إعداد “تمكين الرد عبر البريد الإلكتروني” في قسم المسؤول الخاص بي:

هل من الممكن أن يكون استخدامي لوحدة تحكم rails قد أفسد إعدادات المسؤول؟

أنا أستخدم mail-receiver بنفسي، لذا فإن إعداد Postfix+API يتجاوز قدراتي، ولكن لاحظ أن الشاشة التي تتواجد عليها هي قسم فرعي فقط لـ “رسائل البريد الإلكتروني التي يتم إرسالها إلى أعضائك.”

الإعدادات التي ذكرتها للرد عبر البريد الإلكتروني توجد في المسؤول → جميع إعدادات الموقع → البريد الإلكتروني:

(هناك الكثير من الإعدادات في Discourse وليست مجمعة دائمًا بالطريقة التي قد تتوقعها.)

شكرًا، @ToddZ - لقد وجدت الإعداد الآن، لكن لا يمكنني تمكينه والرسالة الخطأ هي نفسها كما عند استخدام وحدة تحكم Raills:

بناءً على وصف ما تفعله ووصف الإعداد، قد يكون manual_polling_enabled هو ما تبحث عنه.

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

يوجد إعداد “تمكين الاستقصاء اليدوي” أيضًا ضمن المسؤول → كافة إعدادات الموقع → البريد الإلكتروني.

ولأنني على ما يبدو لا أستطيع النوم، فقد أجريت بعض البحث ورأيت حالات قليلة جدًا لأشخاص يحاولون تكوين البريد الوارد عبر واجهة برمجة التطبيقات. في حال كان ذلك مفيدًا لك أثناء المتابعة، إليك ما وجدته:

(مجموعة من الروابط)

أثناء بحثي، ظهر لي من خلال ديسكوبوت هذه المعلومات التي قد تكون قديمة:

يمكنك استخدام واجهة برمجة تطبيقات Discourse للتعامل مع رسائل البريد الإلكتروني الواردة دون الاعتماد على حاوية mail-receiver. يقبل نقطة النهاية /admin/email/handle_mail محتوى البريد الإلكتروني الخام عبر POST، مما يتيح لك دفع رسائل البريد الإلكتروني مباشرة إلى Discourse باستخدام برنامج نصي أو تكامل مخصص. تتجاوز هذه الطريقة الحاجة إلى استقصاء SMTP أو حاوية mail-receiver تمامًا.

على سبيل المثال، يمكنك إرسال بريد إلكتروني إلى Discourse باستخدام أمر curl مع المعلمة email التي تحتوي على محتوى البريد الإلكتروني الخام. يُستخدم هذا النهج بشكل شائع في إعدادات تسليم البريد الإلكتروني المخصصة، خاصة عند استخدام خدمات مثل AWS Lambda أو وظائف أخرى بدون خادم.

تعرف على المزيد حول نقطة نهاية واجهة برمجة التطبيقات في وثائق واجهة برمجة تطبيقات Discourse.

(… لم أجد شيئًا عنها في وثائق واجهة برمجة التطبيقات.)

2018: هذا الموضوع لم يبدو أن له حلاً.

2018: هذه المشاركة تشير إلى دليل البريد الإلكتروني - مع الإشارة إلى لغة لم تعد موجودة هناك - وتوصي أيضًا: “أسهل طريقة لجعل الرد عبر البريد الإلكتروني يعمل هي استخدام قالب حاوية mail-receiver، بدلاً من محاولة العمل مع جميع أنواع واجهات برمجة التطبيقات المختلفة من مقدمي الخدمات المختلفين.”

2022: كان من المقرر تغيير المعلمة email إلى email_encoded.

2022: توصية أخرى بـ استخدام mail-reciever فقط.

إعجابَين (2)

@ToddZ لقد نجح ذلك، شكراً جزيلاً!

discourse(prod)> SiteSetting.manual_polling_enabled = true
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
=> true
إعجابَين (2)