require_dependency 'email_styles' class EmailRenderer def initialize(message, opts=nil) @message = message @opts = opts || {} end def text @text ||= @message.body.to_s.force_encoding('UTF-8') end def logo_url logo_url = SiteSetting.logo_url if logo_url !~ /http(s)?\:\/\// logo_url = "#{Discourse.base_url}#{logo_url}" end logo_url end def html cooked = PrettyText.cook(text, environment: 'email') if @opts[:html_template] ActionView::Base.new(Rails.configuration.paths["app/views"]).render( template: 'email/template', format: :html, locals: { html_body: EmailStyles.new(cooked).format, logo_url: logo_url } ) else cooked end end end