أثناء فحص دوري لسجلات (logs) على نظام Discourse يعمل في بيئة الإنتاج، لاحظت أن مهمة “Poll Mailbox” فشلت مع ظهور الخطأ التالي:
استثناء المهمة: SSL_connect returned=1 errno=0 state=error: فشل التحقق من الشهادة (شهادة ذاتية التوقيع)
بعض الملاحظات ذات الصلة:
- هذه النسخة هي تثبيت قياسي لـ Discourse على Digital Ocean مع شهادة LetsEncrypt. لا يوجد أي شيء آخر على الخادم.
- استيراد البريد عبر بروتوكول Pop3 كان يعمل عليها دون أي مشاكل لعدة أشهر.
- لا توجد أي مؤشرات على وجود مشاكل من جانب Gmail (مثل تسجيل دخول مشبوه، وما إلى ذلك).
هناك موضوع مثير للاهتمام هنا يذكر نفس الخطأ، لكنه يبدو أنه يتعلق بتثبيت يحتوي فعليًا على شهادة ذاتية التوقيع: Reply by email SSL self signed certificate error.
كانت إعدادات الموقع ذات الصلة كالتالي:
pop3 polling enabled: true
pop3 polling ssl: true
pop3 polling openssl verify: true
pop3 polling period mins: 5
pop3 polling host: pop.gmail.com
pop3 polling port: 995
pop3 polling username: // اسم مستخدم لـ Gmail
pop3 polling password: // كلمة مرور لـ Gmail
pop3 polling delete from server: true
حاولت في البداية تبديل إعداد “pop3 polling enabled”، لكن هذا لم يفلح (ولم يتم إرجاع أي أخطاء). قمت أيضًا بإعادة بناء الحاوية. وأخيرًا، غيّرت إعداد “pop3 polling openssl verify” إلى false، وعادت مهمة “Poll Mailbox” للعمل مرة أخرى.
لا أعرف ماذا أفهم من هذا في الوقت الحالي، لكنني فكرت في الإبلاغ عنه الآن.
كملاحظة جانبية، إذا كانت مهمة “Poll Mailbox” تفشل، فقد يكون من الجيد تسجيل ذلك في مكان ما داخل واجهة المستخدم الإدارية، حيث أن الفشل “الصامت” هناك، وفشل استيراد الرسائل، يمكن أن يسبب بعض المشاكل.