Google G Suite Relay SMTP لا يعمل

مرحباً، أحاول تثبيت Discourse لأول مرة على خادم افتراضي Linux من DigitalOcean. يعمل هذا الخادم على استضافة مواقع متعددة عبر Nginx، وقد اتبعت الدليل الخاص بكيفية تثبيت Discourse على مواقع متعددة هنا: Run other websites on the same machine as Discourse - #182 by angus

تم تثبيت Discourse وتشغيله بنجاح. لكن عند إنشاء حساب مسؤول، لا أستلم أي بريد إلكتروني. لقد اتبعت هذا الدليل: crunchify[dot]com/how-to-setup-email-for-discourse-forum-with-google-apps-smtp-relay-right-way/

يستخدم خادمي Postfix لإعادة توجيه الرسائل الإلكترونية إلى Google G Suite، ويعمل بشكل صحيح مع WordPress وMyBB. ومع ذلك، لا يذكر الدليل أعلاه Postfix، وأعتقد أنه يتصل مباشرة بـ Google G Suite.

اتبعت هذا الدليل حول كيفية استكشاف أخطاء البريد الإلكتروني: meta.discourse[dot]org/t/troubleshooting-email-on-a-new-discourse-install/16326

أستطيع الاتصال بـ SMTP Relay عبر Telnet:

$ sudo telnet smtp-relay.gmail.com 587
Trying 2607:f8b0:400d:c04::1c...
Connected to smtp-relay.gmail.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP n18sm708840ooi.26 - gsmtp

يظهر سجل الإنتاج ما يلي:

Rendering layouts/email_template.html.erb
  Rendered layouts/email_template.html.erb (Duration: 0.1ms | Allocations: 32)
Delivered mail cf23dab4-3e43-421e-8e54-228489c58874@forums.neuronootropic.org (610.1ms)
Job exception: end of file reached

  Rendering layouts/email_template.html.erb
  Rendered layouts/email_template.html.erb (Duration: 0.2ms | Allocations: 32)
Delivered mail a092f703-b590-4792-bd73-d9e4700c3e3c@forums.neuronootropic.org (261.1ms)
Job exception: end of file reached

جربت تعيين البريد الإلكتروني في ملف app.yml إلى noreply@forums.neuronootropic.org لأنني أعرف أن هذا البريد يعمل، لكن النتيجة نفسها. لا يزال يرسل رسائل إلكترونية تحتوي على أرقام، وأفترض أنها نوع من التشفير؟ لا تصل هذه الرسائل إلى صندوق الوارد الخاص بي.


مشكلتي الأخرى تتعلق بـ Nginx. كان يعمل بشكل صحيح بالأمس، لكن اليوم قمت بالتلاعب بملف app.yml وقمت بتعيين URL ليكون في دليل فرعي بدلاً من نطاق فرعي.

كنت أريد فقط معرفة ما إذا كان النطاق الفرعي هو سبب مشكلة عدم عمل البريد الإلكتروني، لأن منتدي الحالي، MyBB، يعمل في دليل فرعي ولا توجد مشاكل مع البريد الإلكتروني.

يبدو أن هذا الإجراء قد أفسد Nginx. لسبب ما، يحاول Nginx الآن تحميل شهادة SSL من دليل Discourse على الرغم من أنها غير محددة في ملف إعدادات Nginx. إليك الخطأ:

$ sudo nginx -t
nginx: [emerg] BIO_new_file("/var/discourse/shared/standalone/ssl/ssl.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/var/discourse/shared/standalone/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed

أستخدم Let’s Encrypt للحصول على شهادة SSL وهي تعمل بشكل صحيح. لم يواجه Nginx أي مشاكل بالأمس قبل محاولتي تشغيل Discourse في دليل فرعي بدلاً من نطاق فرعي.

أي مساعدة ستكون مُقدَّرة.

لم قمتُ فعليًا بإعداد خدمة G-Suite Relay للبريد الإلكتروني، لكن يبدو أنه يتعين عليك إضافة forum.neuronootropic.org والتحقق منها كاسم نطاق مرسل في حساب المسؤول على G-Suite. إذا كان الأمر كذلك، فبناءً على وثائق جوجل، لا يوجد سبب لعدم عملها.

ومع ذلك، إذا كان لديك neuronootr0pic.org مُتحقق منه في G-Suite، فيمكنك استخدام شيء مثل noreply_forum@neuronootropic.org لإرسال البريد الإلكتروني.

شكرًا على الاقتراح.

عدتُ وقمت باختبار البريد الإلكتروني. اتضح أنه يمكنه فقط الاستقبال وليس الإرسال من العنوان noreply@forums.neuronootropic.org. قمت بإعداده كمنطقة منفصلة في G Suite وقلت إن سجلات MX للمنطقة الرئيسية ستكون كافية لكليهما.

لم يكن الأمر كذلك. أضفت سجلات MX لـ forums.neuronootropic.org والآن يمكنني إرسال واستقبال الرسائل الإلكترونية.

ومع ذلك، لا يزال discourse لا يرسل بريدًا إلكترونيًا لتفعيل الحساب عند تسجيل مدير.

هل لديك أي أفكار؟

أيضًا، لست متأكدًا من سبب محاولة nginx تحميل شهادة SSL من مجلد discourse بينما لم أقم بتحديد ذلك أبدًا. هل لديك أي أفكار حول كيفية التعامل مع هذه المشكلة؟

تعديل: قمت بتغيير إعداد البريد الإلكتروني للإشعارات لإرسال الرسائل من المنطقة الرئيسية بدلاً من المنطقة الفرعية. أعيد بناء discourse وما زال يرسل الرسائل من المنطقة الفرعية.

exec: rails r "SiteSetting.notification_email='noreply@neuronootropic.org'"

$ tail shared/standalone/log/rails/production.log
  Parameters: {"authenticity_token"=>"K6dxoAPvh8PEU6mLHjyFRhY/CcZFFIalhrX08AIh9EgGuOHrJos7i1w0dgdS7okeoSBTrmWJSsc77YpfTnMO4A=="}
  Rendering finish_installation/resend_email.html.erb within layouts/finish_installation
  Rendered finish_installation/resend_email.html.erb within layouts/finish_installation (Duration: 0.4ms | Allocations: 110)
  Rendered layouts/_head.html.erb (Duration: 0.4ms | Allocations: 145)
Completed 200 OK in 19ms (Views: 7.8ms | ActiveRecord: 0.0ms | Allocations: 3036)
  Rendering layouts/email_template.html.erb
  Rendered layouts/email_template.html.erb (Duration: 0.1ms | Allocations: 32)
Delivered mail bce41ef8-2288-42cd-b7ae-e1eb990a4646@forums.neuronootropic.org (705.1ms)
Job exception: end of file reached

تم إصلاح مشكلة nginx. اتضح أن هناك ملف حفظ لإعدادات nginx موجود في مجلد sites-enabled. لا أعرف كيف وصل إلى هناك لأنني أربط الملفات في sites-available بـ sites-enabled ولا أتعامل مع مجلد sites-enabled.

لا تزال مشكلة SMTP الخاصة بـ G Suite Relay قائمة. لا أفهم السبب. سجل الإنتاج في Discourse لا يذكر أي أخطاء.

تقرير Discourse doctor:

==================== اختبار البريد ====================
للحصول على اختبار شامل، احصل على عنوان من http://www.mail-tester.com/
أو أرسل ببساطة رسالة تجريبية إلى نفسك.
عنوان البريد الإلكتروني لاختبار البريد؟ ('n' للتخطي) [forums@neuronootropic.org]: forums@neuronootropic.org
جاري إرسال البريد إلى forums@neuronootropic.org...
جاري اختبار الإرسال إلى forums@neuronootropic.org باستخدام smtp-relay.gmail.com:587.
======================================== خطأ ========================================
                                    خطأ غير متوقع

تم الوصول إلى نهاية الملف

====================================== الحل =======================================
هذا ليس خطأً شائعًا. لا يوجد حل موصى به!

يرجى الإبلاغ عن رسالة الخطأ الدقيقة أعلاه إلى https://meta.discourse.org/
(وأي حل إذا وجدته!)
=======================================================================================

ماذا يعني هذا؟

أنا، آه… لم أقم بالنقر على حفظ عند إعداد التمرير في G Suite، هاها

البريد الإلكتروني يعمل الآن. :slight_smile: