كيفية إعداد SMTP لاستخدام localhost؟

لقد قمت بتكوين postfix للعمل على مضيف Docker المحلي بحيث يعمل الاختبار عبر swaks --to destination@domain.tld --from admin@hostdomain.tld --server localhost -tls كما هو متوقع. يستخدم المنفذ 25 ويرسل البريد الإلكتروني دون أي مشكلة على الإطلاق.

لذا فإن السؤال المطروح هو: كيف أقوم بإعداد خيارات SMTP في ملف app.yml بشكل مناسب لاستخدام localhost لتسليم البريد؟

تعيين عنوان SMTP إلى 127.0.0.1

للتوضيح، هل تقصد أنه يجب تكوين عنوان IP فقط وتعليق الحقول الأخرى؟ على سبيل المثال:

  DISCOURSE_SMTP_ADDRESS: 127.0.0.1
  #DISCOURSE_SMTP_PORT: 25
  #DISCOURSE_SMTP_USER_NAME: 
  #DISCOURSE_SMTP_PASSWORD:
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (اختياري، الافتراضي true)

إذا كان التطبيق يعمل على نفس المضيف (host) الخاص بـ Docker ولكن داخل حاوية (container) مختلفة، فيجب عليك تحديد عنوان IP للمضيف.

لن يعمل 127.0.0.1 لأنه عنوان العودة إلى الحلقة (loopback address). كل حاوية ترى 127.0.0.1 على أنها نفسها.

هذا ليس في حاوية Docker مختلفة، بل ببساطة على المضيف نفسه لـ Docker.

سيظل بحاجة إلى عنوان IP للمضيف بعد ذلك.

في مثل هذه الحالة، هل يجب استخدام عنوان IP العام، أم أن هناك مخطط عناوين IP خاصًا يستخدمه Docker؟ على سبيل المثال، أرى داخل المضيف docker0 بعنوان 172.17.0.1، وداخل الحاوية (./launcher enter app; apt-get install ifconfig) أرى أن eth0 هو 172.17.0.2. أعتقد أنني يجب أن أستخدم عنوان 172.17.0.1 الخاص بالمضيف داخل حاوية Discourse، لكنني لا أريد أن يتغير هذا العنوان بشكل مفاجئ في وقت ما.

فقط للتوثيق هنا، كان ما يلي كافياً (مع تعليق جميع سطور SMTP الأخرى) للتوصيل إلى خادم SMTP الخاص بالمضيف Docker إذا لم تكن هناك حاجة للمصادقة:

  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 25