2011-05-25 64 views
9

如何将'premailer'gem与Rails(3.0.7)项目集成?我目前在我的邮件:如何将'premailer'与Rails集成

def welcome(user) 
    @user = user 

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

但我不知道如何整合图书馆。我需要致电:

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

但是,我不确定如何从邮件操作中访问我的电子邮件内容。

回答

5

尝试:

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 
+0

嗨,这似乎很好地照顾邮件的身体..谢谢..。我如何使用premailer将布局CSS内联以及邮件正文一起包含为一个完整的邮件..? – boddhisattva 2012-03-14 12:37:04

+5

你能解释为什么这是行得通的吗?这不是很自我解释,至少不适合我 – pduersteler 2012-04-26 13:08:51

1

gem "actionmailer_inline_css" 
5

对于轨道4级的用户,您可以: 宝石

gem 'premailer-rails' 
gem 'nokogiri' (if you don't have it) 

添加添加到您的样式表(Haml的):

%style{type:"text/css"}= Rails.application.assets.find_asset('email_stylesheet').to_s 

由于某种原因,没有使用正常的样式表_link_tag

这就是我所要做的。希望这个帮助!

+0

奇怪,但你的解决方案适合我!谢谢。 – Hannes 2015-01-08 11:47:35