0

s3に保存されているPDF添付ファイル付きのメールを送信することができました

def welcome_pack1(website_registration)
      require 'open-uri'
      @website_registration = website_registration
      email_attachments = EmailAttachment.find(:all,:conditions=>{:goes_to_us=>true})

      email_attachments.each do |a|
        tempfile = File.new("#{Rails.root.to_s}/tmp/#{a.pdf_file_name}", "w")
        tempfile << open(a.pdf.url)
        tempfile.puts
        attachments[a.pdf_file_name] = File.read("#{Rails.root.to_s}/tmp/#{a.pdf_file_name}")
      end

      mail(:to => website_registration.email, :subject => "Welcome")
  end

添付ファイルはメールに添付されています。しかし、それらは0バイトとして通過します。ここに投稿された例を使用していましたpaperclip+ActionMailer-添付ファイルを追加しますか?。私は何かが足りないのですか?

4

1 に答える 1

0

ファイルオブジェクトはバッファリングされます-ファイルを閉じるまで(そうではありません)、書き込んだバイトはディスク上にない可能性があります。closeを呼び出すことを忘れないための優れた方法は、ブロック形式を使用することです。

File.open(path, 'w') do |f|
  #do stuff to f
end #file closed for you when the block is exited.

なぜファイルを使用しているのかわかりませんが、なぜ使用しないのですか?

attachments[a.pdf_file_name] = open(a.pdf.url)
于 2012-07-13T11:57:44.757 に答える