Rails Mailerに添付ファイルとしてXLSXを送信することはできません
-
13-12-2019 - |
質問
私はユーザーによって作成されたファイル添付ファイルを含む電子メールを送信しようとしています。
attachments[document.display_name] = File.read(document.public_filename)
.
これはほとんどの条件で動作します(.docxを含むが、エラーで.xlsxファイルに対して失敗する:
invalid byte sequence in UTF-8
.
attachment_fuを使用して添付ファイルをアップロードし、遅延_jobを電子メールの送信を延期しますが、私が添付しようとしているファイルはOKを添付していて、アプリケーションの外で正常に開くことができます。
私はまた、コードを次のように変更するための提案を見ましたが、それは役に立たないようです。 余分なものを含めます。
attachments[document.display_name] = { :content => File.read(document.public_filename), :transfer_encoding => :binary }
.
すべての添付ファイル型のコード作業をするにはどうすればいいですか?
解決
ファイルをバイナリとして読み取るためのモードまたはエンコードを指定する必要があります。
attachments[document.display_name] = File.read(document.public_filename, :mode => 'rb')
.
または
attachments[document.display_name] = File.read(document.public_filename, :encoding => 'BINARY')
. 所属していません StackOverflow