أنا أبدأ منتدى جديداً تماماً، وأنا جديد على منصة Discourse، ويستضاف على DigitalOcean. لسبب ما، أواجه مشكلة تتعلق بـ SMTP أو منفذ الاتصال. الآن، أود معرفة ما إذا كنت قد اعتمدت تسجيل الدخول عبر Google أو وسائل التواصل الاجتماعي، وما إذا كان عدم وجود خيار تسجيل الدخول المحلي في المنتدى يشكل مشكلة بالنسبة لك.
يتم حظر بروتوكول SMTP على DO افتراضيًا. إذا كنت ترغب في استخدام البريد، فستحتاج إلى العثور على وكيل في مكان ما. قال الكثير من الناس إن Mailgun هو ما يعمل بشكل جيد مع Discourse على السحابة، لكن هذا ليس شيئًا لدي خبرة به.
قد يكون هذا ما تبحث عنه:
نعم، يمكنك استخدام تسجيل الدخول عبر الشبكات الاجتماعية (Discord، Google، …) أو معرف Discourse (بدون إعداد) دون الحاجة إلى SMTP. ستفقد ملخصات البريد الإلكتروني وإشعارات البريد، ولكن إذا كان هدفك هو مجرد إنشاء مجتمع، فسيكون ذلك يعمل بشكل جيد حتى مع انخفاض التفاعل (تم تصميم الملخصات للمساعدة في الاحتفاظ بالمستخدمين).
رائع، لقد جربت SendGrid وMailGun وResend. واجهت نفس المشكلة، وقد تكون مشكلة في المنفذ، لذا جربت جميع المنافذ. في الوقت الحالي، أريد التحقق من أن تسجيل الدخول عبر الشبكات الاجتماعية يعمل بشكل صحيح، والتخلص من تسجيل الدخول المحلي.
مرحبًا @abeen، أهلاً بك
لقد قمت بعدد كبير من عمليات التثبيت الذاتي باستخدام Mailgun و Resend على DigitalOcean (وغيرها من خوادم السحابة) — هل يمكنك تقديم المزيد من التفاصيل حول المشكلة التي تواجهها؟ هل تقوم بتعديل ملف app.yml الخاص بك بالإعدادات المناسبة؟ أفترض أن هذا تثبيت قياسي؟
تقول شركة الاستضافة: «يرجى العلم أنه بالإضافة إلى المنفذ 25 الذي تم حظره سابقًا، تم حظر المنافذ 465 و587 على خوادم Droplets اعتبارًا من 6 مارس 2025. وذلك لضمان عدم استخدام خوادم DigitalOcean لإرسال رسائل البريد الإلكتروني المزعجة.»
وأرى داخل لوحة الإدارة أن هناك 30 مهمة بريد إلكتروني فشلت. يرجى التحقق من ملف app.yml والتأكد من صحة إعدادات خادم البريد. عرض المهام الفاشلة في Sidekiq.
أعدت إنشاء واجهة برمجة التطبيقات الخاصة بـ Resend، وغيرت المنفذ إلى 587، ثم جربت المنفذ 2525. لكن لا شيء يعمل معي.
على الأرجح، هذه هي المشكلة الرئيسية التي تسبب لك المتاعب: فأنت تستخدم علامات اقتفاء منحنية (curly quotes). ملفات YML لا تحب ذلك وعادةً ما تتعطل بسببه. يجب عليك استخدام علامات اقتفاء مستقيمة مفردة أو مزدوجة مثل 'password' أو "password".
هل قمت بتثبيت قياسي على نطاق فرعي أم أن هذا تثبيت على نطاق جذري؟ إذا كان الأمر يتعلق بالنطاق الفرعي، فيجب أن يكون شيئًا مثل forum.dobato.au أو discourse.dobato.au (تحقق مما هو موجود في خادم الأسماء لديك). ما لم تكن تنوي إجراء تثبيت على نطاق جذري، فإن هذا يحتاج إلى تصحيح.
هذا السطر غير ضروري، احذفه.
بينما يدعم Resend هذا ويجب أن يعمل، فإن المعيار هو 587.
هذا السطر غير مطلوب؛ فلا فائدة من إجبار المرسل على بدء STARTTLS - حيث يستخدم مرسل Ruby الأساسي (ActionMailer) enable_starttls_auto: true، مما يعني أنه سيقوم تلقائيًا بترقية الاتصال إلى TLS إذا كان الخادم (Resend) يدعم ذلك. احذف هذا السطر.
يجب أن يبدو قسم app.yml الصحيح لديك كما يلي:
DISCOURSE_HOSTNAME: dobato.au # (تحقق من ذلك - فقد يكون غير صحيح!)
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_actual_api_key_here" # لاحظ علامات الاقتفاء المستقيمة!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
أوه، نسيت DigitalOcean، هههه. لقد انتقلت بعيدًا عنهم منذ فترة. في ذهني كنت أفكر في Resend و Hetzner. لذا نعم، استخدم 2525 (أتذكر الآن أنني قمت بالتبديل إلى ذلك أثناء الترحيل أيضًا).
تعديل: قمت بتصحيح منشوري. شكرًا لك، جيك.
أفهم. من الممكن استضافة Discourse على Lightsail مع SES (يفعل ذلك بعض المستخدمين هنا). أو يمكنك تجربة المنفذ 2525 إذا لم تكن قد فعلت ذلك بعد. ولكن إذا كنت ترغب في تجنب هذه المشاكل المتعلقة بالمنافذ، فيمكنك الانتقال إلى مُضيف آخر، مثل Hetzner أو Lightsail.