تفعيل البريد الإلكتروني للمسؤول لم يتم إرساله في تثبيت ذاتي جديد (ubuntu 20.04)

تمكنت أخيرًا من حل هذه المشكلة.

السبب كان عنوان البريد الإلكتروني للمرسل الذي يستخدمه Discourse افتراضيًا. يتم إنشاؤه من اسم المضيف المُدخل أثناء الإعداد (في حالتي، شيء مشابه لـ v220200xxxxxxxxxxxx.powersrv.de)، مما ينتج عنه عنوان المرسل noreply@v220200xxxxxxxxxxxx.powersrv.de، وهو مرفوض من قبل خادم SMTP.

إذن، لماذا أستخدم هذا الاسم المضيف غير الصديق؟ فقط لأن الخادم مُعد لاستبدال الخادم الحالي الذي أصبح صغيرًا جدًا بالنسبة لمجتمعنا المتنامي على Discourse. أنا أقوم بإعداد واختبار الخادم الجديد قبل تبديل إعدادات DNS لتوجيهها إلى هذا الخادم الجديد لاحقًا. أريد فقط توفير الوقت لإنشاء إعدادات DNS مؤقتة صديقة هنا.

كيفية حل المشكلة؟
ابحث عن هذه الأسطر في نهاية ملف app.yml:

## إذا كنت ترغب في تعيين عنوان البريد الإلكتروني "من" للتسجيل الأول، فقم بإلغاء التعليق وتغييره:
## بعد استلام بريد التسجيل الأول، قم بإعادة التعليق على السطر. فهو يحتاج إلى التشغيل مرة واحدة فقط.

قم بإلغاء التعليق على السطر الأخير وعدّله إلى عنوان يقبله خادم SMTP الخاص بك كمرسل صالح، على سبيل المثال:
- exec: rails r "SiteSetting.notification_email='USER@DOMAIN.TLD'"

الآن قم بتشغيل ./launcher rebuild app لتطبيق التغييرات، وها هو الحل - الآن يتم إرسال بريد التفعيل ويمكنك تفعيل حساب المسؤول وإكمال الإعداد.

كيف اكتشفت ذلك؟
أنشأت حساب بريد جديد مع موفر مساحة الويب الخاص بي، وقمت بتشغيل إعداد Discourse مرة أخرى باستخدام بيانات اعتماد SMTP هذه - وتلقيت بريد التفعيل كما هو متوقع. لذا كنت أعرف أن المشكلة يجب أن تكون مرتبطة بإعدادات SMTP (وليس أي شيء آخر يتعلق بإعدادات Ubuntu / Docker / Discourse).
بعد تفعيل حساب المسؤول باستخدام خادم SMTP الآخر، ذهبت إلى الإعدادات > البريد الإلكتروني > تم تخطيها ووجدت محاولات الفشل في إرسال بريد التفعيل: 553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de>: Sender address rejected: not owned by user USER@DOMAIN.TLD

الخلاصة
أود أن أوجه انتباه فريق تطوير Discourse إلى طلب الميزة اقتراح - السماح بإعداد “من” للبريد الإلكتروني للنظام بشكل اختياري أثناء الإعداد. يرجى النظر في حالات التثبيت الاختباري (مثل النسخ للاختبار قبل الترقية الفعلية للمثيل) التي لا تملك عنوان مضيف صديق. سيكون من الأسهل بكثير إعداد هذه الحالات دون الحاجة إلى الذهاب إلى app.yaml. أيضًا، أعتقد أنه من الجيد منح المسؤول خيار استخدام عناوين بريد إلكتروني غير مرتبطة باسم مضيف Discourse.

شكرًا لكم :slight_smile:

كما أشكر أيضًا @codinghorror على توجيهي إلى كيفية كتابة كتل الكود.