2016-10-06 33 views
1

メールにテキストファイル(拡張子は.txt)を添付しようとすると、電子メールに本文と添付ファイル(noname.html)が添付されて送信されます。このファイルには、私がメールの本文に入るものが含まれています。ファイルの拡張子を.txt以外に変更して添付すると、問題は発生しません。Rails ActionMailer - テキストファイルを添付すると電子メール本文が添付ファイルとして送信される

電子メールのmimepartsを調べると、テキスト添付mimepartが電子メールの本文になりたいhtml mimepartの前に来ることがわかります。しかし、私はmimepartsの問題が原因であるかどうかはわかりません。

電子メールを作成するための私のコードは次のようになります。オプションの引数にこれを追加する

render_to_string # Using a template 
attachments[name] = File.read... 
mail(options) 

助けにはならなかった。

content_type: 'multipart/alternative', 
parts_order: [ 'text/html', 'text/enriched', 'text/plain' ] 

この問題の原因は何ですか? htmlの部分を電子メールの本文に強制するにはどうしたらいいですか?私は、MIMEタイプtext/x-diffでテキストファイルを添付して、これを固定

+0

'content_type: 'multipart/mixed''です。それを試すことができますか? –

+0

"noname"と呼ばれる添付ファイルが1つあります。このファイルには "これはMIME形式の複数のメッセージです..." – Jonathan

答えて

0

text/x-diffとMIMEタイプtext/plainを交換することにより

mime_type = ... # Get mime type, e.g.: Paperclip::ContentTypeDetector.new(attachment_file_name).detect 
mime_type = mime_type == 'text/plain' ? 'text/x-diff' : mime_type 
attachments[attachment_file_name] = { content: File.read..., mime_type: mime_type } 

、テキストファイルの添付はボディであることのために混乱していません。それは電子メールに正しく添付されており、電子メール本文は正しく本文として送信されます。

関連する問題