Sha256: f14dea68a3a77e1f72653896d45fb7221d0f9e59d7ceff452c0f0546e3af537c

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

module PremailerRails
  class Hook
    def self.delivering_email(message)
      # If the mail only has one part, it may be stored in message.body. In that
      # case, if the mail content type is text/html, the body part will be the
      # html body.
      if message.html_part
        html_body = message.html_part.body.to_s
      elsif message.content_type =~ /text\/html/
        html_body = message.body.to_s
        message.body = nil
      end

      if html_body
        premailer = Premailer.new(html_body)
        charset   = message.charset

        # IMPRTANT: Plain text part must be generated before CSS is inlined.
        # Not doing so results in CSS declarations visible in the plain text
        # part.
        message.text_part do
          content_type "text/plain; charset=#{charset}"
          body premailer.to_plain_text
        end unless message.text_part

        message.html_part do
          content_type "text/html; charset=#{charset}"
          body premailer.to_inline_css
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
premailer-rails3-1.1.0 lib/premailer-rails3/hook.rb
premailer-rails3-1.0.2 lib/premailer-rails3/hook.rb
premailer-rails3-1.0.1 lib/premailer-rails3/hook.rb
premailer-rails3-1.0.0 lib/premailer-rails3/hook.rb