تحديث مستلم البريد ذاتي الاستضافة بعد تغيير شهادة جذر Let's Encrypt

هذا الإعلان يؤثر فقط على مستخدمي الاستضافة الذاتية الذين يشغلون Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver. عملاء الاستضافة المُدارة، ومستخدمو الاستضافة الذاتية الذين يستخدمون POP3 لاستقبال البريد، غير متأثرين.

كما قد تكونون على علم، قامت شركة Let’s Encrypt مؤخرًا بتغيير شهادة الجذر الخاصة بها. انتهت صلاحية شهادة الجذر القديمة اليوم، مما تسبّب في عدد من المشكلات لعملاء قديمين عبر الويب. جميع أنظمتنا في CDCK محدّثة، ولم تتأثر بانتهاء الصلاحية اليوم. للأسف، لم ننتبه بصورة عامة إلى صورة حاوية استلام البريد، التي لم يتم تحديثها منذ بضعة أشهر.

وهذا يعني أن تركيبات استلام البريد الحالية للمواقع المستضافة ذاتيًا لن تتمكن من تسليم البريد إلى المواقع المؤمنة بشهادات Let’s Encrypt.

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

docker pull discourse/mail-receiver:release
cd /var/discourse
./launcher rebuild mail-receiver

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

إذا كنت لا تزال تواجه مشكلات بعد اتباع هذه الخطوات، فتأكد من أنك تشغّل إصدار release من mail-receiver. يمكنك العثور على معلومات حول ذلك في هذا الموضوع.

نعتذر عن هذا الإزعاج! شكرًا كبيرًا إلى @wlandgraf على الإبلاغ الأولي عن المشكلة، ومساعدته في اختبار الإصلاح :heart:

28 إعجابًا

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

root@ba /var/discourse # ./launcher rebuild mail-receiver
Ensuring launcher is up to date
Fetching origin
Updating Launcher...
Updating 46d899f..990519e
error: Your local changes to the following files would be overwritten by merge:
	templates/web.letsencrypt.ssl.template.yml
Please commit your changes or stash them before you merge.
Aborting
failed to update
إعجاب واحد (1)

ماذا يحدث إذا قمت بـ

cd /var/discourse
git diff

هل تظهر أي اختلافات في ملف web.letsencrypt.ssl.template.yml؟

إذا كان الأمر كذلك، يمكنك إعادة تعيينها باستخدام git reset --hard

3 إعجابات

آه، لقد قمت بتغيير ما :innocent: لقد نجحت في الترقية الآن، شكرًا لك!

إعجابَين (2)

يمكنك اختبار ما إذا كنت تشغل إصدار mail-receiver القديم بهذه الطريقة.

docker exec mail-receiver bash -c "cat /etc/issue|grep Alpine"

إذا كان النظام Alpine، فهذا هو الإصدار القديم.

docker exec mail-receiver bash -c "cat /etc/issue|grep 'Debian GNU/Linux 11'"

إذا كان النظام Debian، فهذا هو الإصدار الجديد.

7 إعجابات

@david، هل تمانع في إلقاء نظرة على المشكلات أدناه؟ فقد أزال أحدث تحديث لـ mail-receiver القدرة على تطبيق تدابير إضافية لمكافحة البريد العشوائي، والتي كانت فعالة للغاية في الإصدار السابق، مما جعل منتداي عرضة لضغط متزايد من البريد العشوائي مرة أخرى بسبب التغيير الأخير.

حاولت تحديد المشكلة الجذرية، لكنني لا أملك معرفة عميقة بـ postfix لتحديد ذلك. وجدت تقارير مشابهة (client=unknown حتى عند وجود سجل PTR في DNS) تتعلق بـ postfix في سجن chroot، لذا قد يكون لهذا علاقة بالموضوع. كما يبدو أن أدوات dnsutils مفقودة من صورة Debian الجديدة لـ mail-receiver، لكن تثبيتها لا يزال لا يحل المشكلة؟

يجب إصلاح هذه المشكلة بسهولة:

4 إعجابات

@david شكراً على هذا الإصلاح! لقد قمت بتشغيله للتو ويمكنني رؤية أنه يعمل. :+1:

هل هناك طريقة لمعرفة رسائل البريد الإلكتروني التي لم يتم تسليمها منذ الأول من أكتوبر؟

لقد جربت هذا، لكنني أرى 5 طلبات فقط (كان أقدمها في 26 نوفمبر):

/var/discourse/launcher enter mail-receiver
mailq

حاولت أيضًا النظر إلى السجلات، لكنني حصلت فقط على التحذير المبلغ عنه هنا:

3 إعجابات

أعتقد أن أي شيء لم يعد في قائمة الانتظار يجب أن يكون قد تم إرجاعه إلى المرسل. أخشى أنني لست متأكدًا مما إذا كان الحاوية تحتوي على أي سجلات يمكن أن تعود إلى ما أبعد مما وجدته.

4 إعجابات

هل سيؤدي مجرد إضافة pull_image بعد السطر 657 إلى حل الحاجة إلى سحب الصورة بشكل صريح قبل إعادة البناء؟ أي\n\n # إذا لم تكن الصورة التي يتم تهيئتها هي صورة Discourse الأساسية\n if [[ ! X\"\" = X\"$base_image\" ]]; then\n image=$base_image\n # محاولة تحديث الصورة\n pull_image\n fi\n\n\nسيؤدي هذا إلى حدوث docker pull $image دائمًا أثناء التهيئة/إعادة البناء لحاوية مع تعيين base_image في ملفها yml. لا أعتقد أن هذا يضر بـ mail-receiver إذا حدث أن كانت محدثة بالفعل، لكنني لست متأكدًا مما إذا كانت هناك مواقف أخرى يمكن أن تكون فيها مشكلة.

إعجابَين (2)

نعم، ربما يكون pull غير المشروط منطقيًا هنا. من الغريب بعض الشيء أنه ينطبق فقط على صورة الأساس الرئيسية لدينا في الوقت الحالي. ما رأيك يا @Falco؟

إعجابَين (2)

أود أن أسمع إجابة قاطعة لهذا السؤال :slight_smile:

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

أعتقد أنه يمكنك رؤيته عن طريق الاستعلام عن جدول incoming_emails في postgres

إعجابَين (2)

للأسف، لم يُظهر ذلك أي شيء في الفترة الزمنية ذات الصلة (أكتوبر 2021 إلى فبراير 2022).

هل ستكون هناك أي سجلات في حاوية mail-receiver نفسها؟

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