Les notifications par e-mail échouent si des en-têtes en double existent

(Avertissement : pas un programmeur Ruby)

Je pense que c’est un comportement particulièrement désagréable dans la bibliothèque d’e-mails que Discourse utilise. Voici la fonction header_value :

Pour autant que je puisse en juger, @message.header[name] appelle cette méthode :

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

Conformément aux RFC, de nombreux champs peuvent apparaître plus d’une fois. Nous retournerons une chaîne de caractères de la valeur s’il n’y a qu’un seul en-tête, ou s’il y a plus d’un en-tête correspondant, nous retournerons un tableau de valeurs dans l’ordre où elles apparaissent dans l’en-tête, ordonnées de haut en bas.

Discourse définit automatiquement un en-tête Precedence, donc parce que vous en ajoutez un également via le paramètre email_custom_headers, il y a maintenant deux en-têtes Precedence, et @message.header[\"Precedence\"] renvoie un tableau au lieu d’une chaîne de caractères.

Je pense que ce bug sera déclenché chaque fois que email_custom_headers contiendra un en-tête qui existe déjà sur l’objet message.

5 « J'aime »