مرحبًا. لديّ نظام Discourse مثبتًا على خادم محلي بدون Docker، وقد قمتُ أيضًا بتثبيت iRedMail. في البداية، حاولت استخدام خادم SMTP من mail.ru. تم إرسال رسائل الاختبار ودعوات التسجيل بنجاح، لكن لم تصل أي إشعارات عبر البريد الإلكتروني، ولم يتم إعادة تعيين كلمة المرور. فقررت أن أكون خادم بريد محليًا وأفحص السجلات لمعرفة سبب عدم خروج الرسائل. قمت بذلك، وتصل الرسائل المحلية بين صناديق البريد بنجاح، وهو ما يكفي للاختبار. اعتقدت أن هذا سيكون كافيًا لـ Discourse والبريد المحلي. قمت بضبط خادم SMTP المحلي، وأرسلت بريدًا تجريبيًا… ووصل! (الفوز لا يعني النجاح). ثم راجعت سجلات خادم البريد في /var/log/mail.log.
حسنًا، الآن أرسلت دعوة لنفس الصندوق… وفحصت سجلات خادم البريد… ولا شيء. السجل فارغ. لا أعرف ما هي المشكلة. كل ما أطلبه هو دليل حول كيفية جعل Discourse يتواصل مع Postfix. حاليًا، لدي حساب مدير نشط لأنني قمت بتفعيله يدويًا، كما خمنت، لأنني لم أستلم بريد التحقق. سأقدم أي ملفات مثل الإعدادات والسجلات عند الطلب.عزيزي @Anv،
مرحبًا بك في Discourse Meta.
عادةً، عندما نواجه مثل هذه المشكلات، ننفذ أمرًا مثل:
sendmail -vvv A_VALID_EMAIL_ADDRESS < email.txt
وهذا سيعطيك مخرجات مفصلة جدًا عن عملية المصافحة بينك وبين خادم SMTP؛ وعادةً ما توفر هذه السجلات التفصيلية لك التلميحات اللازمة لحل مشكلتك.
نأمل أن يكون هذا مفيدًا.
مرحبًا! ليس لديّ الكثير من الخبرة. قمت بتثبيت discourse وخادم البريد لأول مرة. هل يمكنك توضيح ما يجب عليّ فعله بالضبط؟ شكرًا لك.
مرحبًا @Anv
أولاً، تحتاج إلى “نسيان” Discourse مؤقتًا والتركيز على إعداد خادم إعادة توجيه البريد SMTP الخاص بك واختباره والتأكد من قدرته على إعادة توجيه البريد.
هل قمت بالفعل بهذه الخطوة؟
لقد قمت بتثبيت iRedMail باستخدام هذا الرابط:
دون تنفيذ الخطوة 5 والخطوة 9.
مرحبًا @Anv
هذا بالتأكيد تثبيت متقدم.
هل جربته دون استخدام discourse وتأكدت من أنه يعمل؟
شيء مثل:
sendmail -vvv A_VALID_EMAIL_ADDRESS < email.txt
؟
لقد أنشأت صندوقَي بريد في النطاق المحلي الخاص بي “@ugda.space”. والرسائل تصل إلى بعضهما البعض. أما بالنسبة إلى صناديق Gmail وMail وYandex، فلا تصل الرسائل إلى بعضها البعض. لم أقم بإعداد ذلك، لأنني اعتقدت أن التواصل الداخلي المحلي سيكون كافيًا للاختبارات.
@أنف دعني أكون صريحًا: القاعدة غير المكتوبة الجيدة يجب أن تكون شيئًا مثل
مرحبًا @Anv
أفهم إحباطك؛ وأنا آسف لأنني لا أملك وقتًا حرًا كافيًا لتصحيح مشكلة إعادة توجيه البريد SMTP الخاصة بك في كل مرة ترد فيها.
يبدو أن خادم البريد SMTP الخاص بك يستقبل الرسائل؛ لكن هذا لا يعني بالضرورة أنه سيعمل كوسيط لإعادة التوجيه SMTP.
أتذكر، من الذاكرة، وجود خيار (flag) لاستخدام sendmail وعملاء بريد آخرين للتحقق من عمل خادم SMTP بشكل صحيح كوسيط إعادة توجيه. يمكنك إجراء بعض البحث حول خيار sendmail -G (أو البحث عن طريقة أخرى للاختبار). بشكل أساسي، تحتاج إلى إرسال البريد إلى عنوان بريد إلكتروني تجريبي مختلف عن الخادم الذي تعمل عليه، باستخدام خادم SMTP الجديد الذي أنشأته كوسيط إعادة توجيه.
بعض التاريخ
في الأيام الخوالي، كانت معظم خوادم SMTP تقوم بإعادة توجيه البريد تلقائيًا؛ لكن بعد ذلك أصبحت جميع خوادم SMTP على الشبكة صناديق بريد غير مرغوب فيه (SPAM) كبيرة، لأن المحتالين كانوا يستغلون وظيفة إعادة التوجيه (دون علم صاحب الصندوق) لإغراق العالم بالرسائل غير المرغوب فيها.
الخلاصة هي أنك بحاجة إلى التحقق مما إذا كان خادم SMTP الجديد الذي أنشأته قادرًا على إعادة توجيه البريد نيابةً عنك.
هل راجعت دليل الإعداد الخاص بك بعناية لترى ما إذا كان قد ذكر إعداد خادم SMTP كوسيط إعادة توجيه؟
أنا أفكر بصوت عالٍ فقط وآمل أن يساعدك هذا بشكل بسيط في الانتقال إلى الخطوة التالية في مشروع خادم SMTP الخاص بك.
حسناً، أعتقد أنني فهمتك. سأحاول البحث عن أي معلومات حول هذا الأمر.
لقد ذكرت أن لديك Discourse مثبتًا بدون Docker. هل من الممكن أن تقوم بتثبيت جديد تمامًا بالطريقة “الكلاسيكية” (باستخدام Docker) عن طريق إدخال البريد الإلكتروني الذي أنشأته خلال هذا التثبيت الجديد؟ أم أنك لا تستطيع تشغيل Docker على الجهاز الذي تستخدمه؟
لقد جربت استخدام Docker، لكن لم يصلني أي بريد إلكتروني على الإطلاق. لم أستطع حتى إنشاء حساب مسؤول. قررت التخلي عن Docker لأنني كنت قليل الخبرة.
مرحبًا @Mevo و@Anv
صباح الخير.
أنا متأكد من أن هذا لن يكون مفيدًا، لكن كـ “نقطة بيانات إضافية فقط”، لم أواجه أي مشكلة في إعداد البريد SMTP على Discourse سواء في تثبيت إنتاجي قائم على Docker أو في بيئة تطوير على سطح مكتب macOS “بدون Docker”؛ لكنني دائمًا ما استخدمت خدمة SMTP من طرف ثالث.
أنتم تجذبون انتباهي؛ لذا فأنا الآن مهتم جدًا بهذا اللغز الصغير وسأحاول إيجاد وقت خلال الأسابيع القليلة القادمة لإعداد خادم بريد وسيط (SMTP relay) على شريحة VPS تعمل بنظام Ubuntu Linux، وأرى ما إذا كان بإمكاني جعل Discourse يتفاعل مع خادم بريد وسيط “تقليدي” بدلاً من الاعتماد على “حلول الطرف الثالث”.
أعتذر مسبقًا إذا استغرق مني الأمر بضعة أسابيع لبناء هذا الإعداد. فأنا متأخر في مجموعة من الأعمال الورقية الحكومية المملة لأنني كنت أقضي وقتًا ممتعًا جدًا في تعلم تطوير إضافات Discourse وكيفية عمل Rails مع جميع الأجزاء المتحركة.
مرحبًا @neounix.
على أي حال، شكرًا جزيلاً لك على مساعدتي في هذا.
ربما تكون مشكلتي الرئيسية هي أنني أرغب في تشغيل هذا داخل شبكة محلية (LAN) دون الوصول من شبكة خارجية.
يُشير السجل إلى وجود رسالة تحتوي على معرف.
حاولت البحث عن ذكر لهذا المعرف.
1 معرف - رسالة اختبار.
2 معرف - دعوة
![]()
بعد بعض المحاولات والأخطاء، تمكنت من جعل Discourse يعمل مع Postfix. إليك الخطوات التي استخدمتها، آمل أن تكون مفيدة:
-
قم بإعداد سجل A يشير إلى خادمك الجديد، مثل
forum.domain.com. -
قم بتثبيت Postfix، واضبط
forum.domain.comكقيمة لـmyhostname، وأضف172.17.0.0/16إلىmynetworksحتى يتمكن حاوية Discourse من الاتصال بـ Postfix دون الحاجة إلى مصادقة.172.17.0.0/16هي الشبكة الافتراضية المستخدمة بواسطة حاويات Docker. -
تأكد من قدرة Postfix على إرسال البريد الإلكتروني. أنا أفضل استخدام
swaks.swaks -t your_name@gmail.comيجب أن تستلم بريدًا إلكترونيًا بعنوان “This is a test mailing”.
-
في ملف
containers/app.yml، تأكد من وضع تعليق على الأسطر الثلاثة الخاصة بـDISCOURSE_SMTP_USER_NAMEوDISCOURSE_SMTP_PASSWORDوDISCOURSE_SMTP_ENABLE_START_TLS.ثم اضبط
DISCOURSE_SMTP_DOMAINعلىforum.domain.com(تأكد من استبدالها باسم نطاقك هنا). -
للاختبار، يمكنك الاتصال بحاوية Discourse عبر الأمر
docker exec -it app bashوتشغيل:apt update apt install -y swaks swaks -t name@gmail.com --server forum.domain.comيجب أن تستلم بريدًا إلكترونيًا بعنوان “This is a test mailing”.
-
أعد تشغيل Discourse باستخدام الأمر
./launcher rebuild app. يجب أن تتمكن الآن من إنشاء حساب جديد واستلام بريد التحقق.


