Le notifiche email falliscono se esistono intestazioni duplicate

(Disclaimer: non sono un programmatore Ruby)

Penso che questo sia un comportamento particolarmente spiacevole nella libreria di posta elettronica che Discourse sta utilizzando. Ecco la funzione header_value:

Per quanto ne so, @message.header[name] sta chiamando questo metodo:

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

Come da RFC, molti campi possono apparire più di una volta, restituiremo una stringa del valore se c’è solo un’intestazione, o se ci sono più intestazioni corrispondenti, restituiremo un array di valori nell’ordine in cui appaiono nell’intestazione ordinati dall’alto verso il basso.

Discourse imposta automaticamente un’intestazione Precedence, quindi poiché ne stai aggiungendo una anche tu tramite l’impostazione email_custom_headers, ci sono ora due intestazioni Precedence, e @message.header[\"Precedence\"] restituisce un array invece di una stringa.

Penso che questo bug verrà attivato ogni volta che email_custom_headers contiene un’intestazione che esiste già sull’oggetto del messaggio.

5 Mi Piace