# فشل إشعارات البريد الإلكتروني في حالة وجود رؤوس مكررة

**URL:** https://meta.discourse.org/t/email-notifications-fail-if-duplicate-headers-exist/222960
**Category:** Bug
**Created:** [2 أبريل 2022، 9:33م UTC](https://meta.discourse.org/t/email-notifications-fail-if-duplicate-headers-exist/222960 "2022-04-02T21:33:09Z")
**Posts on this page:** 1
**Showing post:** 14

<div class="post-metadata">

### Author: ![simonk](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simonk/32/247950_2.png) [@simonk](https://meta.discourse.org/u/simonk)
#### Post date: [12 أبريل 2022، 10:37ص UTC](https://meta.discourse.org/t/email-notifications-fail-if-duplicate-headers-exist/222960/14 "2022-04-12T10:37:18Z")

</div>

(إخلاء مسؤولية: لست مبرمج روبي)

أعتقد أن هذا سلوك بغيض بشكل خاص في مكتبة البريد التي يستخدمها ديسكورس. إليك دالة `header_value`:

> <https://github.com/discourse/discourse/blob/9c33f6de05703a42465139fda54773e5fa26c617/lib/email/sender.rb#L434>

على حد علمي، فإن `@message.header[name]` تستدعي هذه الطريقة:

[https://www.rubydoc.info/github/mikel/mail/Mail%2FHeader:[]](https://www.rubydoc.info/github/mikel/mail/Mail%2FHeader:%5B%5D)

> وفقًا لـ RFC، يمكن أن تظهر العديد من الحقول أكثر من مرة، وسنعيد سلسلة نصية للقيمة إذا كان هناك رأس واحد فقط، أو إذا كان هناك أكثر من رأس مطابق، فسنعيد مصفوفة من القيم بالترتيب الذي تظهر به في الرأس مرتبة من الأعلى إلى الأسفل.

يقوم ديسكورس [بتعيين رأس `Precedence` تلقائيًا](https://github.com/discourse/discourse/blob/9c33f6de05703a42465139fda54773e5fa26c617/lib/email/sender.rb#L194)، لذلك نظرًا لأنك تضيف واحدًا أيضًا عبر إعداد `email_custom_headers`، فهناك الآن **رأسان** `Precedence`، ويعيد `@message.header["Precedence"]` مصفوفة بدلاً من سلسلة نصية.

أعتقد أن هذه المشكلة سيتم تفعيلها في أي وقت يحتوي فيه `email_custom_headers` على رأس موجود بالفعل في كائن الرسالة.

---

_[View the full topic](https://meta.discourse.org/t/email-notifications-fail-if-duplicate-headers-exist/222960)._
