Уведомления по электронной почте не работают при наличии дублирующихся заголовков

(Отказ от ответственности: я не программист Ruby)

Мне кажется, это особенно неприятное поведение в библиотеке mail, которую использует Discourse. Вот функция header_value:

Насколько я могу судить, @message.header[name] вызывает этот метод:

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

Согласно RFC, многие поля могут встречаться более одного раза; мы вернем строку со значением, если заголовок только один, или, если совпадающих заголовков больше одного, вернем массив значений в порядке их появления в заголовке сверху вниз.

Discourse автоматически устанавливает заголовок Precedence, поэтому, поскольку вы также добавляете его через настройку email_custom_headers, теперь есть два заголовка Precedence, и @message.header["Precedence"] возвращает массив вместо строки.

Мне кажется, эта ошибка будет возникать каждый раз, когда в email_custom_headers содержится заголовок, который уже есть в объекте сообщения.

5 лайков