لا يمكن تعيين DISCOURSE_SMTP_AUTHENTICATION: login

مرحبًا، أواجه مشكلة في إرسال البريد. أستخدم Mailjet وأحصل على الخطأ التالي:

Connection reset by peer

لذلك أحاول الآن تعيين DISCOURSE_SMTP_AUTHENTICATION: login في ملف app.yml. ربما يحل هذا المشكلة.

أعدت تشغيل ./launcher restart app بعد ذلك، لكن عند تشغيل discourse-doctor مرة أخرى، يظهر النص with plain auth مرة أخرى.

تذكير، نسيت إضافة فئة الدعم

تحتاج إلى التدمير ثم البدء

شكرًا لك، لقد نجح الأمر، لكن يبدو أنني كنت أصلح الشيء الخطأ، فلا يزال يظهر:
Job exception: Connection Reset by peer

ليس لدي أي فكرة عن المكان الذي يجب أن أبحث فيه لإصلاحه. أنا أستخدم DigitalOcean وأرسل عبر المنفذ 587. لقد عدت إلى المصادقة العادية لأنك، كما يبدو، مضطر لذلك في Mailjet. TLS اختياري حسبما ذكروا، لكنني جربته مع TLS وبدونه دون جدوى. حقًا لا أعرف ما الذي يجب تغييره بعد الآن؛ لقد جربت وضع علامات اقتباس مزدوجة حول كلمة المرور وبدونها. لقد راجعت اسم المستخدم وكلمة المرور مرة أخرى أيضًا.

DISCOURSE_DEVELOPER_EMAILS: 'user@email.com'

  ## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
  # عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
  # تحذير: قد يسبب حرف '#' في كلمة مرور SMTP مشاكل!
  DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: uname
  DISCOURSE_SMTP_PASSWORD: pwd
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_DOMAIN: radstarter.io
  DISCOURSE_NOTIFICATION_EMAIL: noreply@radstarter.io
  ## إذا أضفت قالب Let's Encrypt، فقم بإلغاء التعليق أدناه للحصول على شهادة SSL مجانية
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

أي مساعدة ممتنة.

يمكنك التحقق مما إذا كان الأمر telnet in-v3.mailjet.com 587 يتصل أو ينقضي مهلة الاتصال. إذا انقضت مهلة الاتصال، فهذا يعني أن منفذ الإرسال محظور، لذا ستحتاج إلى استخدام منفذ مختلف (قد يعمل المنفذ 2525 مع Mailjet، لكنني لست متأكدًا) أو ستحتاج إلى طلب من Digital Ocean إيقاف حظر المنفذ.

يمكنني الاتصال عبر telnet لكن الاتصال يُغلق فورًا

~# telnet in-v3.mailjet.com 587
Trying 104.199.96.85...
Connected to in.mailjet.com.
Escape character is '^]'.
Connection closed by foreign host.

إذا كان هناك جدار حماية متورط، فقد تكون تلك السلسلة المتصلة مضللة. فقد تكون مجرد تقرير بأنها اتصلت بنجاح بشيء ما عند تجربة هذا النطاق (in-v3. هو بديل لـ in.)، لكن ذلك الشيء هو جدار الحماية الذي يغلق الاتصال بعد ذلك.

يمكنك تجربة أمر آخر وهو telnet smtp-relay.gmail.com 587. إذا فشل الأمر بنفس الطريقة، فمن المرجح أن المنفذ محظور على خادم Digital Ocean الخاص بك. قد يكون هذا بسبب جدار حماية خارجي عن الخادم أو برنامج جدار حماية يعمل على الخادم نفسه.

في الحالة الأولى، قد تتمكن من التحكم في ذلك من خلال لوحة تحكم حسابك، أو قد تحتاج إلى التواصل مع مزود الخدمة. أما في الحالة الثانية، فمن المرجح أن يكون الأمر يتعلق بـ iptables، ويمكنك استخدام الأمر التالي للتحقق من ذلك وإدراج القواعد المطبقة على الاتصالات الصادرة.

iptables -S OUTPUT

هذا على الأرجح مقبول إذن.

إذا كان محظورًا، فمن المرجح أن ذلك تم على مستوى الشبكة خارج نظام تشغيل الـ droplet. (ما لم يكن قد قام بإعداد جدار حماية ليحظر نفسه دون أن يدري.)

هناك العديد من مواضيع Mailjet. هل قمت بالنظر فيها؟

iptables -S OUTPUT

-P OUTPUT ACCEPT
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output

يعمل بريد Gmail عبر بروتوكول SMTP بسلاسة تامة

نعم، قمت بمراجعة العديد من مواضيع Mailjet، ولا يشكل أي منها مشكلة لحلولي.

لقد استخدمت التثبيت بنقرة واحدة، وهذا على الأرجح سبب الفشل. سأحذف القطرة (Droplet) وأقوم بتثبيت نظيف.

تعديل: يعمل الآن، لاحظ: لا تستخدم أبدًا مثبتًا بنقرة واحدة