E-Mail-Benachrichtigungen schlagen fehl, wenn doppelte Header vorhanden sind

(Haftungsausschluss: kein Ruby-Programmierer)

Ich halte das für ein besonders unangenehmes Verhalten in der Mail-Bibliothek, die Discourse verwendet. Hier ist die Funktion header_value:

Soweit ich das beurteilen kann, ruft @message.header[name] diese Methode auf:

https://www.rubydoc.info/github/mikel/mail/Mail%2FHeader:[]

Gemäß RFC können viele Felder mehrfach vorkommen. Wir geben einen String des Werts zurück, wenn nur ein Header vorhanden ist, oder wenn mehr als ein übereinstimmender Header vorhanden ist, geben wir ein Array von Werten zurück, in der Reihenfolge, in der sie im Header von oben nach unten erscheinen.

Discourse setzt automatisch einen Precedence-Header. Da Sie über die Einstellung email_custom_headers einen weiteren hinzufügen, gibt es nun zwei Precedence-Header, und @message.header[\"Precedence\"] gibt ein Array anstelle eines Strings zurück.

Ich glaube, dieser Fehler wird immer dann ausgelöst, wenn email_custom_headers einen Header enthält, der bereits im Nachrichtenobjekt vorhanden ist.

5 „Gefällt mir“