2011-05-25 44 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