(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.