simonk
(Simon King)
14
(免责声明:不是 Ruby 程序员)
我认为这是 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 个赞