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

x7yiwoj4  于 2023-05-17  发布在  Ruby
关注(0)|答案(3)|浏览(129)

我试图创建一个应用程序,将发送出风格沉重的电子邮件,并要求客户端工作,除了谷歌的Gmail。我研究了这个问题,看起来Gmail从外部文件或嵌套在“样式”标签中的CSS中剥离了CSS。有没有一种简单的方法可以将样式从外部文件移动到内联文件?
需要的东西:

<style>
  .wide { width: 100px; }
  .cell { display: block; }
</style>
<span class="wide cell">Sample</span>

并将其转换为:

<div class="wide cell" style="width: 100px; display: block;">Sample</div>

谢谢!

xcitsw88

xcitsw881#

这里有几个宝石,你可以检查出来:

我在写这个答案的时候没有赢家,但是premailer似乎是最新的。

qlzsbp2j

qlzsbp2j2#

添加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
bxjv4tth

bxjv4tth3#

你的推理只有一个问题……许多样式,甚至是内联,都不受支持。
下面是what is supported in email的参考
在您的示例中,使用显示:标签,Outlook 07+不支持
我的公司每天发送数千封电子邮件,我经常参与制作。在实践中,内联样式可以工作,但它并不像内联所有东西那么简单,它会工作。你必须非常小心你使用什么和如何使用它。我已经诉诸于我的开始,做几乎所有的纯HTML与表格的布局。这基本上是我发现的让事情几乎100%工作的唯一方法。
如果你要将这个功能构建到一个会得到大量使用的应用程序中,我也强烈建议通过他们的API构建Email on Acid。虽然您可以编写质量非常好的输出,但Microsoft无疑会找到一些方法使您的有效代码无法工作。电子邮件酸将呈现使用任何疯狂微软正在使用的时间,以显示你,如果你的电子邮件工程。这是纯粹的天才和需要使用那些谁是认真的发送大量的电子邮件。“不,我不是为公司工作……”

相关问题