simonk
(Simon King)
14
(免責事項: Rubyプログラマーではありません)
Discourseが使用しているメールライブラリの非常に厄介な動作だと思います。以下はheader_value関数です。
私の理解では、@message.header[name]はこのメソッドを呼び出しています。
https://www.rubydoc.info/github/mikel/mail/Mail%2FHeader:[]
RFCによると、多くのフィールドは複数回出現する可能性があります。ヘッダーが1つしかない場合は文字列を返し、一致するヘッダーが複数ある場合は、ヘッダーの上から下への順序で値の配列を返します。
Discourseは「Precedence」ヘッダーを自動的に設定するため、email_custom_headers設定を通じて追加しているため、現在2つの「Precedence」ヘッダーがあり、@message.header["Precedence"]は文字列ではなく配列を返しています。
このバグは、email_custom_headersにメッセージオブジェクトに既に存在するヘッダーが含まれている場合にトリガーされると思います。
「いいね!」 5