كيفية رؤية تفاصيل السجل الكامل غير المقتطعة

تفاجأت فجأة بأن جميع بريدي الإلكتروني يرتد. أحتاج إلى تفاصيل السجل الكامل. العرض في Discourse مقطوع بنقاط ثلاث (…). كيف يمكنني رؤية الإدخال بالكامل؟ إنه ضروري بشكل عاجل للمساعدة في حل هذه المشكلة.

Reporting-MTA: dsn; a27-22.smtp-out.us-west-2.amazonses.com

Action: failed
Final-Recipient: rfc822; keith.jones@du.edu
Diagnostic-Code: smtp; 554 Blocked - see https://ipcheck.proofpoint.com/?ip=54.240.27.22
Sta…

يجب عليك مراجعة سجلات خادم البريد الخاص بك. يبدو أن Discourse يقوم بإرسال البريد، لكن خادم البريد لا يريد تسليمه.

أنا ضائع هنا. أستخدم Amazon SES للبريد الإلكتروني. بعد تسجيل الدخول إلى bash في الحاوية، لا أعرف أين أجد سجلات البريد الخاصة بـ Discourse. لم أستطع رؤية أي شيء ذي صلة في /var/log. أعتذر عن جهلي التام. لقد تمكنت على الأقل من رؤية السجلات عبر عنوان URL /logs الخاص بـ Discourse، لكن لماذا لا يمكنني العثور عليها على القرص؟ هل هي مخزنة في قاعدة بيانات؟

مرحبًا @Andro

في Discourse، يقوم Rails Action Mailer بإرسال البريد الإلكتروني بعد جدولته كمهمة Sidekiq.

عادةً، يتم تسجيل بعض أخطاء استثناءات المهام في سجل Rails للإنتاج، على سبيل المثال.

linux# docker exec -it your-app bash
your-app:/# cd /shared/log/rails


your-app:/shared/log/rails# grep -i SMTP *

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. m7sm3825233oou.11 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. 63sm3561399otx.2 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. z63sm4258403otb.20 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. q18sm3815880ood.35 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. h2sm4265076otn.15 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. y84sm4346372oig.36 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. 8sm4343514oii.45 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. t18sm722516otc.64 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. j22sm1840062otp.45 - gsmtp

لذلك، قد تتمكن من العثور على بعض الأدلة في سجل Rails للإنتاج، كما هو موضح أعلاه.

تحياتي، وآمل أن يكون هذا مفيدًا.

ملاحظة: هناك شيء آخر صغير يمكن التحقق منه، وقد لا يكون مفيدًا في حالتك، وهو تشغيل الأمر التالي من وحدة تحكم Rails:

EmailLog.where(bounced:true).count

أو حتى بشكل أبسط:

EmailLog.bounced.count

أيضًا، نسيت أن أذكر أنه يمكنك تكوين Rails لتسجيل المزيد من معلومات المرسل إذا كنت بحاجة إلى المزيد من السجلات:

هناك العديد من الإعدادات المتاحة في config.action_mailer:

يقبل config.action_mailer.logger مسجّلًا يتوافق مع واجهة Log4r أو فئة Logger الافتراضية في Ruby، والذي يُستخدم بعد ذلك لتسجيل المعلومات من Action Mailer. قم بتعيينه على nil لتعطيل التسجيل.

في Discourse، هذا الإعداد مضبوط افتراضيًا على ```nil``، مما يعني عدم تسجيل أي شيء:

[5] pry(main)> Rails.application.config.action_mailer.logger
=> nil

انظر، على سبيل المثال، القسم 3.10 Configuring Action Mailer

المشكلة هي أننا نستخدم خدمة البريد الإلكتروني البسيطة من أمازون (SES)، ولا أستطيع العثور على أي طريقة لعرض السجلات هناك. أعتقد أن السجلات ببساطة غير متاحة كجزء من الخدمة.

مرحبًا @neounix، شكرًا جزيلاً. أستطيع رؤية تفاصيل البريد الكامل في ملفات production.log المؤرخة. أستطيع رؤية الاستجابة الكاملة من Amazon SES. هذا بالضبط ما أحتاجه. مفيد جدًا. ممتن جدًا.

عزيزي @أندرو،

أهلاً وسهلاً. يسعدنا أن نكون قد ساعدناكم في الوصول إلى جذر مشكلتكم.

أتمنى لكم أعيادًا سعيدة، وإلى الأمام وإلى الأعلى!