2012-03-13 13 views
3

ユーザーが作成した添付ファイルを含む電子メールを送信しようとしています。xlsxをRailsメーラーの添付ファイルとして送信できません

attachments[document.display_name] = File.read(document.public_filename) 

これは、.docxのを含め、ほとんどの条件(で動作しますが、エラーとの.xlsxファイルで失敗した:

invalid byte sequence in UTF-8 

私は添付ファイルをアップロードするattachment_fuを使用しています、とdelayed_jobは、電子メールを送信延期しますしかし、私が添付しようとしているファイルは大丈夫です。アプリケーションの外で正常に開くことができます。

また、コードを次のように変更する提案もありましたが、それは役に立ちません。 。

attachments[document.display_name] = { :content => File.read(document.public_filename), :transfer_encoding => :binary } 

すべての添付ファイルタイプに対してコードを機能させるにはどうすればよいですか?あなたはそれをバイナリとしてファイルを読み込むようにするモードやエンコーディングを指定する必要が

答えて

4

attachments[document.display_name] = File.read(document.public_filename, :mode => 'rb') 

または

attachments[document.display_name] = File.read(document.public_filename, :encoding => 'BINARY') 
+0

グレートは、御馳走を働きました。ありがとう。 – niciliketo