From: dkmd_nielsen Date: 2009-12-15T03:56:55+09:00 Subject: ActionMailer PDF attachment and Windows I've been struggling for a couple of days down with trying to attach a pdf file to an email using ActionMailer on Windows. All the examples on the web I could find instructed me to use ":body => File.read ()" to do the attachment. The attached file was always corrupt. I attempted to simply copy the file using File.read (), and the copy too yielded a truncated file. What just now worked for me was a different body syntax. What works is the following: ":body => File.new(fattach,'rb').read()". I don't exactly understand the significance of the of the difference. Nor do I understand why the original example above works in Linux but not Windows, and why the latter example works in Windows. But it does work. I just want to get discussion on the web in case someone else encounters the same problem, and this provides an alternative solution. class Emailer < ActionMailer::Base def report_attachment(to,cc,bcc,from,subject,body,fattach) pp to,cc,bcc,from,subject,body,fattach recipients to cc cc bcc bcc from from subject subject body body attachment :content_type => "application/pdf", :content_disposition => "attachment", :filename => File.basename(fattach), :body => File.new(fattach,'rb').read() end end