إشعارات البريد الإلكتروني تُعيّن المرفقات بشكل غير صحيح إلى multipart/alternative

عند إرسال إشعارات البريد الإلكتروني مع المرفقات، تكون بنية MIME متعددة الأجزاء الناتجة غير صحيحة. يتم تضمين المرفقات كجزء “بديل” بدلاً من أن تكون جزءًا “مختلطًا”. ونتيجة لذلك، لا تعرض بعض عملاء البريد الإلكتروني، مثل Thunderbird، هذه المرفقات لأنها تُفسَّر على أنها مجرد تنسيق بديل لمحتوى البريد الإلكتروني، مثل النص مقابل HTML.

[الاقتباس التالي مأخوذ من تقرير خطأ مماثل تقريبًا ضد Mailer والذي يعتمد أيضًا على وحدة Mail.]

ما أتوقع أن تكون عليه هيكلية البريد الإلكتروني:

multipart/mixed
  multipart/alternative
    text/plain
    text/html
  application/pdf (أي في حالة وجود مرفق PDF)

ما أحصل عليه:

multipart/alternative
  text/plain
  text/html
  application/pdf (أي في حالة وجود مرفق PDF)

الأثر العملي:
يعرض Thunderbird نص الجسم الصحيح، وفقًا لتفضيلات المستخدم (نص أو HTML)، لكنه لا يظهر المرفق كملف مرفق (مع أنه موجود في كود مصدر البريد الإلكتروني ككتلة مشفرة بـ base64). بينما يعرض بريد iOS جسمًا فارغًا، ويظهر فقط مرفق PDF كملف، لأنه الإدخال الأخير، وعلى ما يبدو فإن عميل البريد يعرض هذا فقط.

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

9 إعجابات

شكرًا لك على الإبلاغ عن هذه المشكلة وتقديم وصف واضح لها!

تم إصلاح هذه المشكلة الآن اعتبارًا من FIX: Notification emails with attachments are incorrectly structured · discourse/discourse@59578df · GitHub.

7 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 4 أيام. لم يعد مسموحًا بإضافة ردود جديدة.