مشكلة البريد على discourse مع البروكسي العكسي

لقد قمت بتكوين ملف app.yml الخاص بي بحيث يكون البريد الإلكتروني شيئًا مثل

  DISCOURSE_SMTP_ADDRESS: mail.mysecrect.tld
  DISCOURSE_SMTP_PORT: 465
  DISCOURSE_SMTP_USER_NAME: minegenix@mysecret.tld
  DISCOURSE_SMTP_PASSWORD: <secret>

وُجد هذا أيضًا في السجلات:

فشل
تم تسليم البريد 3ff63fed-4142-4042-ab33-29493b32b3a6@beta2.mysecret.tld (30001.9 مللي ثانية)
استثناء المهمة: انتهت صلاحية التنفيذ

قد تحتاج إلى إضافة هذا إلى تطبيقك.yml

DISCOURSE_SMTP_ENABLE_START_TLS: false

حسناً، بالمناسبة أنا أستخدم Mailcow!

هل الخادم الذي يعمل هو discourse beta2.mysecret.tld - وليس mysecret.tld؟

جرب هذه الخيارات:

DISCOURSE_SMTP_ADDRESS: 172.17.0.1 # استخدم عنوان IP الداخلي هنا - قد لا يتم حل اسم نطاق خادم البريد بشكل صحيح
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "YOUR-SMTP-USER-NAME"
DISCOURSE_SMTP_PASSWORD: "YOUR-SMTP-PASSWORD"
#DISCOURSE_SMTP_ENABLE_START_TLS: true           # (اختياري، الافتراضي صحيح)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_DOMAIN: mysecret.tld

mysecret.tld هو مجرد عنصر نائب يخفي عنوان المنتدى الحقيقي الخاص بي لأنني لا أرغب في الكشف عنه :slight_smile:

هل ترسل رسائل بريد إلكتروني بعنوان مرسل مثل “…\@ beta2. mysecret.tld” - ولكن حساب mailcow الخاص بك هو لـ “…\@mysecret.tld”؟

لا، أنا أرسل رسائل البريد الإلكتروني من …@mysecret.tld والموقع يعمل على beta2.mysecret.tld

@Sprisa أضف الإعداد الذي نشرته وأعد البناء.

انظر إذا كان ذلك يساعد.

@rrit أنت لا تفهم القصد :man_facepalming:

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

نعم، أنا أفعل ذلك حاليًا

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

بالمناسبة، هل أحتاج إلى تهيئة كل مرة بعد إعادة البناء؟

حسنًا، لقد أضفت الإعدادات، لم يساعد ذلك.

كيفية تصحيح الأخطاء عند الاتصال الأول بخادم SMTP

1. ادخل إلى حاويتك (container):

./launcher enter app

2. تحقق من دقة تحليل اسم خادم SMTP الخاص بك عبر getent hosts:

(لا يتم تثبيت dig أو nslookup أو ping وما إلى ذلك داخل الحاوية.)

getent hosts your.smtp.server

النتيجة عند النجاح:

# IPv4
123.123.123.123 your.smtp.server

# IPv6
2001:db8:0:0:0:ff00:42:8329 your.smtp.server

3. حاول فتح اتصال بخادم SMTP الخاص بك عبر openssl:

(لا يتم تثبيت telnet أو nc وما إلى ذلك داخل الحاوية.)

قم بتجربة بعض الإعدادات المختلفة حتى تنجح في الاتصال.

openssl s_client -connect your.smtp.server:465
openssl s_client -connect your.smtp.server:587 -starttls smtp

# IPv4
openssl s_client -connect 172.17.0.123:465
openssl s_client -connect 172.17.0.123:587 -starttls smtp

# IPv6
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:465"
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:587" -starttls smtp

انظر: كيفية التحقق من اتصال SMTP – الخطوة 3: التحقق من اتصال SMTP عبر TLS باستخدام Openssl

4. استخدم إعدادات الاتصال العاملة التي وجدتها مع Discourse.

:rocket:

مكافأة: عرض عنوان IP الخاص بـ Discourse من داخل حاوية docker

(لا يتم تثبيت ifconfig أو ip وما إلى ذلك داخل الحاوية.)

hostname -I

النتيجة مثل:

172.17.0.2

لا يمكنني الاتصال بـ openssl، وأحصل فقط على هذا: من getent

2606:4700:3032::ac43:d2f1 mail.secret.tdl
2606:4700:3033::6815:4db8 mail.secret.tld

(secret.tld يستبدل نطاقي الفعلي)

تخمين عشوائي: هل هذا عنوان IP عام؟ هل تم تكوين Mailcow الخاص بك للاستماع لاتصالات SMTP على عنوان IP العام هذا أم فقط على شبكة داخلية؟

داخل حاوية Discourse، يمكنك الحصول على عنوان IP للحاويات الخاصة بك عبر:

hostname -I

هل Mailcow الخاص بك موجود أيضًا على نفس الشبكة الداخلية (Docker)؟

172.17.0.2 هو الشيء الذي أحصل عليه من hostname -I

هل يمكنك الدخول إلى حاوية mailcow الخاصة بك والحصول على hostname -I؟ هل Mailcow و Discourse حاويتان منفصلتان على نفس المضيف؟

كيف يمكنني الدخول إلى حاوية mailcow؟ لا يوجد نص برمجي مشغل.

لا أعرف عن mailcow أيضًا. ربما من الأفضل التحقق مرة أخرى مع مجتمع mailcow: https://community.mailcow.email/

ما الذي يجب أن أستخدمه للحصول على أنظمة البريد، أو ما هو البرنامج الذي يمكنني إعداده على أوبونتو ليعمل كخدمة بريد في منتدياتي؟