Rails - ActionMailer - How to send an attachment that you create?

后端 未结 2 851
春和景丽
春和景丽 2020-12-25 12:31

In rails3 w ActionMailer, I want to send a .txt file attachment. The challenge is this txt file does not exist but rather I want to create the txt file given a large block o

2条回答
  •  自闭症患者
    2020-12-25 13:14

    It's described for files in the API documentation of ActionMailer::Base

    class ApplicationMailer < ActionMailer::Base
      def welcome(recipient)
        attachments['free_book.pdf'] = File.read('path/to/file.pdf')
        mail(:to => recipient, :subject => "New account information")
      end
    end
    

    But that doesn't have to be a File, it can be a string too. So you could do something like (I'm also using the longer Hash-based form where you can specify your own mimetype too, you can find documentation for this in ActionMailer::Base#attachments):

    class ApplicationMailer < ActionMailer::Base
      def welcome(recipient)
        attachments['filename.jpg'] = {:mime_type => 'application/mymimetype',
                                       :content => some_string }
        mail(:to => recipient, :subject => "New account information")
      end
    end
    

提交回复
热议问题