添付ファイル付きでメール通知を送信すると、生成されるマルチパート MIME 構造が不正になります。添付ファイルが「mixed」パートではなく「alternative」パートとして含まれています。その結果、Thunderbird などの一部のメールクライアントでは、これらがテキスト対 HTML のようなメール本文の単なる代替形式として解釈されるため、添付ファイルが表示されません。
[以下の引用は、同じく Mail モジュールに依存する Mailer に対する本質的に同一のバグレポート から抜粋したものです。]
期待されるメールの構造:
multipart/mixed multipart/alternative text/plain text/html application/pdf(PDF 添付の場合)実際に受け取っている構造:
multipart/alternative text/plain text/html application/pdf(PDF 添付の場合)実用上の影響:
Thunderbird はユーザー設定(txt または html)に応じて正しいテキスト本文をレンダリングしますが、添付ファイルとして表示されません(ただし、メールのソースコード内では base64 エンコードされたブロックとして存在します)。iOS のメールアプリは、空のメール本文のみを表示し、最後のエントリである PDF 添付ファイルのみをファイルとして表示します。どうやら、このメールクライアントは最終エントリのみをレンダリングするようです。
Discourse が依存している Mail モジュール には、いくつかの関連する可能性のあるバグレポートが存在します。これらのレポートの一部は、特定の順序でパーツを渡すことで問題が解決するという明示されていない含みをもってクローズされています。ここでそれが当てはまるかどうかはわかりませんが、上記で引用しリンクしたレポートから、それらのレポートのいくつかへのリンクが提供されています。