Search code examples
ruby-on-railsrubyactionmailerpremailer

How to Integrate 'premailer' with Rails


How does one integrate the 'premailer' gem with a Rails (3.0.7) project? I currently have in my mailer:

def welcome(user)
  @user = user

  mail to: user.email, subject: "Welcome"
end

But I can't figure out how to integrate the library. I need to call:

premailer = Premailer.new(html)
html = premailer.to_inline_css

However, I'm not sure how to access the contents of my email from a mailer action.


Solution

  • Try:

    def premailer(message)
      message.text_part.body = Premailer.new(message.text_part.body.to_s, with_html_string: true).to_plain_text
      message.html_part.body = Premailer.new(message.html_part.body.to_s, with_html_string: true).to_inline_css
    
      return message
    end
    
    def welcome(user)
      @user = user
    
      message = mail to: user.email, subject: "Welcome"
    end