رسائل البريد الإلكتروني المرتدة من Amazon SES/SNS لا تعمل

كنتُ على علم بأن Discourse توفر نقطة نهاية للتعامل مع إشعارات SNS من Amazon SES. نقطة النهاية هي /webhooks/aws، وقد عرفتُ عنها من هنا:

https://meta.discourse.org/t/handling-bouncing-e-mails/45343/177?u=wlandgraf

كل شيء يعمل “تقريبًا”. أستطيع أن أرى أن AWS ترسل الإشعارات إلى نقطة النهاية هذه عبر سجلات CloudWatch. كما أرى أن Discourse ترد على الإشعارات برمز حالة نجاح (200) بعد أن قمت بإعدادها لإرسال الرسالة الخام.

ومع ذلك، لا تظهر الرسالة الإلكترونية في قائمة الرسائل “المرتدة” في Discourse. هل هناك أي شيء آخر يجب عليّ فعله؟ وكيف يمكنني التحقق من سجل يُظهر ما فعلته نقطة النهاية فعليًا بعد استلام الإشعار من AWS؟

حسنًا، تمكنت من العثور على سجل الطلب الفاشل، لكنني ما زلت في حيرة بشأن ما قد يكون سببه؟

Encoding::UndefinedConversionError ("\xC3" من ASCII-8BIT إلى UTF-8)
app/jobs/base.rb:314:in `block in enqueue'
lib/mini_sql_multisite_connection.rb:68:in `after_commit'
app/jobs/base.rb:314:in `enqueue'
app/controllers/webhooks_controller.rb:117:in `aws'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'

يبدو أن الأمر مرتبط بهذا: Encoding::UndefinedConversionError from ASCII-8BIT to UTF-8 · Issue #24 · karafka/sidekiq-backend · GitHub.

إن Discourse يمرر ملف JSON المستلم من Amazon SNS مباشرة إلى Sidekiq، الذي بدوره غير قادر على معالجته بشكل صحيح.

أتساءل أيضًا لماذا في webhooks_controller.rb تستدعي جميع الويب هوكس process_bounce مباشرة، بينما الويب هوك الخاص بـ AWS هو الوحيد الذي يقوم بوضع مهمة في الطابور لمعالجتها؟