在Rails中将外部CSS转换为邮件的内联CSS

Kev*_*tre 16 css ruby email gmail ruby-on-rails

我正在尝试创建一个应用程序,它将发送风格繁重的电子邮件,并要求客户工作,除了谷歌的Gmail.我研究了这个问题,看起来Gmail从外部文件中删除了CSS,或者嵌套在'style'标签中的CSS.是否存在将样式从外部文件移动到内联的简单方法?

需要的东西:

<style>
.wide { width: 100px; }
.cell { display: block; }
</style>
<span class="wide cell">Sample</span>
Run Code Online (Sandbox Code Playgroud)

并将其转换为:

<div class="wide cell" style="width: 100px; display: block;">Sample</div>
Run Code Online (Sandbox Code Playgroud)

谢谢!

Len*_*art 38

这里有几个你可以看看的宝石:

我在写这个答案的时候没有赢家,但预制者似乎是最新的.


Kev*_*tre 6

补充premailer:

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 ...
end
Run Code Online (Sandbox Code Playgroud)