البريد الإلكتروني لا يعمل؛ خطأ مصادقة Net::SMTPAuthenticationError

أستضيف خادم Discourse على DigitalOcean، والنطاق من PorkBun، وخادم البريد مع MailGun.

تم تنشيط حساب MailGun الخاص بي وتم التحقق من صحة النطاق (discourse.mydomain.com) للاستخدام مع mg.mydomain.com. تم وضع جميع سجلات TXT الخاصة بنظام أسماء النطاقات في مكانها.

لقد قمت بكل خطوة من خطوات استكشاف الأخطاء وإصلاحها في هذا الموضوع عدة مرات؛ Troubleshoot email on a new Discourse install

يمكنني إدخال telnet على المضيف وإرسال البريد يدويًا دون مشكلة (https://serverfault.com/questions/49935/easiest-way-to-send-a-test-email-from-a-server-to-test-settings)

يحتوي ملف app.yml على المحتويات التالية:

  DISCOURSE_DEVELOPER_EMAILS: 'myemail@gmail.com'
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: mail
  DISCOURSE_SMTP_PASSWORD: "12345678901234567890"
  DISCOURSE_SMTP_DOMAIN: mg.mydomain.com
  DISCOURSE_NOTIFICATION_EMAIL: admin@mg.mydomain.com

عندما أحاول تشغيل discourse-doctor أو إذا قمت بتشغيل ./launcher enter app ثم تشغيل rake 'emails:test[mail@mg.mydomain.com]' أحصل على الخطأ التالي:

======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::SMTPAuthenticationError

====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!

Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)
=======================================================================================

هناك خطأ ما في Discourse، لأنني لا أواجه مشكلة في إرسال البريد يدويًا. لقد كنت أبحث في Google والمنتديات هنا لساعات عديدة، ولم أجد حلولًا حتى الآن. أي أفكار؟

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

راجع استكشاف أخطاء البريد الإلكتروني وإصلاحها في تثبيت Discourse جديد

إعجابَين (2)

كلمة المرور لا تحتوي على أي من هذه الأحرف. في الواقع، إنها كلمة المرور التي تم إنشاؤها تلقائيًا بواسطة MailGun، وتحتوي فقط على أحرف وأرقام وبعض أحرف ‘-’. إنها طويلة جدًا.

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

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

أراهن أن DISCOURSE_SMTP_USER_NAME غير صحيح - mail على الأرجح غير كافٍ لـ mailgun للمصادقة عليك. يجب أن يكون على الأرجح mail@mg.mydomain.com

أخمن أنك تعتقد أن DISCOURSE_SMTP_DOMAIN هو نطاق المستخدم؟ إنه ليس كذلك - إنه نطاق EHLO. أنت بالتأكيد لا تحتاج إلى تعيينه.

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

أدركت هذا للتو أيضًا، عندما اختبرت باستخدام telnet استخدمت “mail@mg.mydomain.com” كاسم مستخدم ونجح الأمر، لذا سأحاول مرة أخرى باستخدام هذا كـ DISCOURSE_SMTP_USER_NAME

أعتقد أنك تعتقد أن DISCOURSE_SMTP_DOMAIN هو نطاق المستخدم؟ إنه ليس كذلك - إنه نطاق EHLO. ربما لا تحتاج إلى تعيينه.

لست متأكدًا مما يعنيه هذا

بالنسبة لـ MailGun كنت أستخدم mg.mydomain.com، وبالنسبة لـ Discourse كنت أستخدم discourse.mydomain.com. ليس لدي أي سجلات DNS في الوقت الحالي لـ mydomain.com، فقط للنطاق الفرعي لـ Discourse وسجلات TXT لـ DNS الخاص بـ MailGun.

قم بإزالة السطر الخاص بـ DISCOURSE_SMTP_DOMAIN، فمن شبه المؤكد أنك لا تحتاجه.

يتم استخدامه أثناء التفاوض عبر SMTP كمجال HELO/EHLO.

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

نعم، بالمناسبة، عندما اختبرت باستخدام telnet، تمكنت بالفعل من إرسال البريد الإلكتروني من جميع العناوين التالية:

  • mail@discourse.mydomain.com
  • mail@mydomain.com
  • mail@mg.mydomain.com

لست متأكدًا من أي منها يفترض بي استخدامه بالفعل؟ هل يهم؟

يعتمد ذلك على إعداداتك وما تريد أن يبدو عليه تدفق بريدك.

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

يعمل الآن، شكراً لكم جميعاً على المساعدة :slight_smile:

كان الحل هو استخدام

  DISCOURSE_SMTP_USER_NAME: mail@mg.mydomain.com

بدلاً من

  DISCOURSE_SMTP_USER_NAME: mail
إعجابَين (2)

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