لا يمكن استلام البريد من خادم البريد الإلكتروني

أهلاً بكم جميعاً،

أنا على علم بهذه المشكلة، فهي معروفة وسهلة الوقوع فيها. لقد قرأت وقمت بالعديد من الاختبارات، لكنني علقْتُ في خطوة “إرسال البريد الإلكتروني”.

لقد اتبعت الدليل الموجود هنا: https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md، وفيما يلي خطواتي:

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

انتقل إلى /samples/ وانسخ ملف standalone.yml إلى /containers/app.yml.

يرجى تعديل معلومات خادمك.
بعد ذلك:

sudo ./discourse-doctor

التجربة الأولى

عندما كانت إعدادات ملف app.yml كالتالي:

DISCOURSE_HOSTNAME : 'localhost'

وملأت المعلومات التالية:

  DISCOURSE_SMTP_ADDRESS: XXX
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: XXX
  DISCOURSE_SMTP_PASSWORD: XXX
  DISCOURSE_SMTP_ENABLE_START_TLS: true   

يتم استضافة خادم البريد الإلكتروني أيضاً على الشبكة الداخلية.
في البداية، عملت كل شيء بشكل صحيح. استطاع Discourse إرسال بريد التسجيل بشكل صحيح، كما تمكنت من الوصول إلى لوحة الإدارة بشكل طبيعي.

ومع ذلك، عندما قمت بتعيين localhost كقيمة لـ HOSTNAME، لم أتمكن من استخدام عنوان IP الداخلي (مثل 10.1.X.X) للوصول عبر المتصفح.


التجربة الثانية

لذلك قمت بتعديل قيمة DISCOURSE_HOSTNAME فقط دون تغيير أي معلومات أخرى في ملف app.yml.

DISCOURSE_HOSTNAME : '10.1.3.91'

ملاحظة: 10.1.3.91 هو عنوان IP الداخلي (الشبكة المحلية) الخاص بي.

بعد تغيير اسم النطاق (hostname) إلى هذا العنوان، تمكنت من الوصول عبر المتصفح. لكن خادم البريد الإلكتروني توقف عن العمل، ولم أعد أستطيع استقبال أي رسائل من Discourse.


ملاحظات إضافية

لقد حاولت إرسال بريد إلكتروني باستخدام بايثون مع خادم SMTP الخاص بي.

إليك النص البرمجي:

from email.mime.multipart import MIMEMultipart
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

content = MIMEMultipart() 
content["subject"] = "Learn Code With Mike"  
content["from"] = " (بريدي الإلكتروني) "  
content["to"] = " (بريد تجريبي) "
content.attach(MIMEText("Demo python send email"))  


with smtplib.SMTP(host=" (نفس DISCOURSE_SMTP_ADDRESS) ", port="587") as smtp: 
    try:
        smtp.ehlo() 
        smtp.starttls()  
        smtp.login(" (نفس DISCOURSE_SMTP_USER_NAME) ", " (نفس DISCOURSE_SMTP_PASSWORD) ") 
        smtp.send_message(content)  
        print("Complete!")
    except Exception as e:
        print("Error message: ", e)

عمل هذا النص بنجاح. هل هذا يثبت أن معلومات SMTP صحيحة وقابلة للاستخدام؟

هل لديكم أي أفكار حول هذه المشكلة؟

بالنسبة لخادم البريد، جربت أيضاً خدمات Elastic Email و Mailjet، لكن لم تنجح أي منهما.

الخلاصة:

إذا تم استخدام localhost كقيمة لـ DISCOURSE_HOSTNAME، فإن خادم البريد يعمل.
إذا تم تغيير DISCOURSE_HOSTNAME إلى عنوان IP داخلي (أي عنوان IP محلي)، فإن خادم البريد لا يعمل.

شكراً جزيلاً لكم!!!

مع أطيب التحيات،
جييه

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

تحديث:

يمكنني استلام البريد الإلكتروني في بداية رسالة “تهانينا، لقد قمت بتثبيت Discourse!” و"تسجيل حساب المسؤول" باستخدام عنوان IP الداخلي المحدد عند الوصول من جهاز آخر. ومع ذلك، بعد هذه الخطوات، يظهر خطأ يفيد بعدم إمكانية العثور على الصفحة. لماذا كان الوصول ممكنًا في الأصل عبر عنوان IP الداخلي، وبعد هذا الإعداد يصبح عنوان IP الأصلي غير صالح؟
أمر غريب جدًا…

يبدو أن المشكلة قد تم حلها بنفسي.

انتقل إلى /etc/hosts

واضبط اسم المضيف ليكون عنوان IP الخاص بك.
يتم تعيين اسم المضيف أيضًا كـ IP.

يمكن استخدام DISCOURSE_HOSTNAME عنوان IP داخلي.
عندها سيعمل.

(بالطبع، هذا للاستخدام الداخلي فقط.)

3 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.