تحديث mail-receiver إلى إصدار الإصدار

إذا وصلت إلى هنا لأنك لاحظت هذه الرسالة في لوحة تحكم المسؤول:

اكتشفنا إصدارًا قديمًا من mail-receiver..

فأنت في المكان الصحيح.

يرجى الدخول إلى خادم discourse عبر ssh وتشغيل الأمرين التاليين لتحديث mail-receiver:

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
/var/discourse/launcher rebuild mail-receiver

لمزيد من التفاصيل، يرجى الاستمرار في القراءة.

لماذا نحتاج إلى تحديث mail-receiver؟

نحتاج إلى تحديث mail-receiver إلى إصدار أحدث لا يستخدم طريقة مصادقة API قديمة.

عند إعداد mail-receiver لأول مرة، طُلب منك إنشاء ملف containers/mail-receiver.yml يحتوي على رقم إصدار ثابت:

base_image: discourse/mail-receiver:x.x.x

لتلقي التحديثات المستقبلية دون الحاجة إلى تحديث هذا الرقم يدويًا، يمكنك تغيير رقم الإصدار إلى release بدلاً من تحديد إصدار معين.

يرجى تعديل /var/discourse/containers/mail-receiver.yml لاستخدام صورة الأساس التالية:

base_image: discourse/mail-receiver:release

إذا رغبت، يمكنك ببساطة تشغيل هذا الأمر:

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml

لتعديل الملف نيابةً عنك.

بعد ذلك، يمكنك تشغيل:

/var/discourse/launcher rebuild mail-receiver

للانتقال إلى أحدث إصدار من mail-receiver.

21 إعجابًا

شكرًا لك على دليل التحديث يا @blake! ومع ذلك، يبدو أنني لا أملك ملف mail-receiver.yml في المسار /var/discourse/containers/ لسبب ما.

root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: can't read /var/discourse/containers/mail-receiver.yml: No such file or directory

وللتأكد، قمت بتشغيل الأمر ls لمعرفة ما هو موجود فعليًا:

root@nomadgate-community-eu:/var/discourse/containers# ls
app.yml  app.yml.save

هل لديك أي فكرة عن سبب عدم وجود ملف mail-receiver.yml وماذا يمكنني أن أفعل حيال ذلك؟ يبدو أن ميزة استلام البريد تعمل لمجتمعي حتى بدون هذا الملف…

تعديل: عند التفكير في الأمر، لا أعتقد أنني قمت بإعداد ميزة “mail-receiver” من قبل. أنا أستخدم ميزة الويب هوك للتحليل الوارد في SendGrid، فلماذا أرى هذا الخطأ في لوحة تحكم Discourse؟

ومع ذلك، لكي تعمل هذه الميزة، أقوم بتمرير بيانات اعتماد واجهة برمجة التطبيقات (API) كمعاملات في عنوان URL على النحو التالي: /admin/email/handle_mail?api_key=xxx&api_username=xxx — هل لن يعمل هذا بعد الآن؟ وإذا كان الأمر كذلك، هل توجد طريقة أخرى للحفاظ على دعم الرسائل الواردة عبر SendGrid؟

إعجابَين (2)

أوافقك الرأي – لا أرى ملف containers/mail-receiver.yml في تثبيت Discourse الخاص بي. حتى الآن، لم ألاحظ أي آثار سلبية.

@dltj هل تستخدم أيضًا SendGrid أو ما شابهها؟

إليك الأمر: إذا لم تقم بتثبيت مستلم البريد، فلا حاجة لترقيته.

إعجابَين (2)

بالتأكيد، لكنني أحاول جمع أكبر قدر ممكن من المعلومات، حيث قد تحدث تغييرات في استدعاءات واجهة برمجة التطبيقات (API) المعتمدة على معلمات الاستعلام، وذلك اعتمادًا على الدعم المقدم من SendGrid أو مزودي خدمات آخرين يمكنك ربطهم لاستخدام هذه النقطة الطرفية.

3 إعجابات

لا، أنا لا أستخدم SendGrid — فقد تم تثبيت Discourse هذا منذ عدة سنوات، وفي ذلك الوقت قمت بكتابة دالة AWS Lambda تستخدم واجهة برمجة التطبيقات /admin/email/handle_mail لدفع البريد الوارد إلى Discourse. كان سكريبت Lambda هذا يستخدم Python 2.7، لذا فقد حان الوقت لإعادة كتابته… ربما حان الوقت لمعرفة الخيارات المتاحة الآن.

غريبًا، لم يعد يظهر على لوحة تحكم المشرف في Discourse الرسالة “تم اكتشاف إصدار قديم من mail-receiver…”. هاه. انسَ ذلك — الرسالة لا تزال موجودة. ربما اختفت لأن تثبيت Discourse لم يستقبل أي رسائل واردة لبضعة أيام على نقطة النهاية /admin/email/handle_mail، لكنه فعل ذلك عندما أرسلت رسالة الاختبار؟

لقد تحققت للتو — لا يزال البريد الوارد إلى Discourse يعمل.

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

صحيح. ينقضي الوقت بعد 24 ساعة إذا لم يتلق أي رسائل.

إعجابَين (2)

آه، فهمت. إذن، تحذير لوحة التحكم ليس بسبب استخدامي لـ ‘mail-receiver’… بل هو بسبب استخدامي لـ api_key و api_username، اللذين تم إيقاف دعمهما الآن، كمعلمات استعلام في نقطة نهاية الـ API. حسنًا… من السهل إصلاح ذلك. شكرًا على التلميحات.

3 إعجابات