heroku 为什么CSS在发送HTML电子邮件时不起作用?

goucqfw6  于 2022-11-13  发布在  其他
关注(0)|答案(6)|浏览(119)

当我在heroku使用SendGrid服务时,我注意到当我发送基于HTML的电子邮件时,CSS没有效果,有人能告诉我可能出了什么问题吗?
我试图发送它作为html.haml,html.erb,但都没有工作,虽然图像在发送的电子邮件中正确查看.
你知道吗?

6rqinv9w

6rqinv9w1#

尝试使用内联样式而不是外部样式表。如下所示:

<div style="color:green;" id="div"></div>

而不是像这样:

<style>
    #div {
        color:green;
    }
</style>
    
<div id="div"></div>

(感谢Kelvis Miho指出这一点)

**编辑:**我在Google上搜索了@Joe的文本,发现大部分内容都是从http://css-tricks.com/using-css-in-html-emails-the-real-story/复制的。
**编辑:**Joe编辑了他的帖子,以包括参考链接。

请记住,大多数电子邮件客户端不支持很多CSS,所以你应该主要使用图像和表格。
例如,你可以编写一个很棒的电子邮件设计,然后截图。对于表格,你可以把徽标放在中间的顶部,把截图中漂亮的“特色”窗格放在左边,把“折扣”作为内容放在徽标下面的中间,等等。

xu3bshqb

xu3bshqb2#

您不能做的事情:

  • 在正文中加入样式部分。Apple Mail.app支持,但Gmail和Hotmail不支持,所以这是一个禁忌。Hotmail将支持在正文中加入样式部分,但Gmail仍然不支持。
  • 链接到一个外部样式表。没有多少电子邮件客户端支持这个,最好忘记它。
  • 背景图像/背景位置。Gmail也是这一问题的罪魁祸首。
  • 清理你的浮钱。又是Gmail。
  • 边距。是的,说真的,Hotmail忽略了边距。基本上任何CSS定位都不起作用。
  • 任何字体。Eudora很可能会忽略您试图用字体声明的任何内容。

还有很多事情你应该知道。一个伟大的在线电子邮件服务支持什么的完整列表,看看这篇文章在Xavier Frenette。

你能做什么

简单地说,内联样式。这并不像你想象的那么糟糕,因为我们基本上是在开发一个一次性的电子邮件,内联样式并不像在网站上使用它们那样令人震惊。
from this site

brtdzjyr

brtdzjyr3#

您需要使用内联样式。

4uqofj5v

4uqofj5v4#

对我来说,premailer-rails宝石的工作原理就像一个魅力。你只需要把这个宝石添加到你的宝石文件中

gem 'nokogiri'
gem 'premailer-rails'

你所有的邮件都会包含assets文件夹中的样式。我通常会在assets文件夹中创建一个email.css.less,然后像这样将其包含在邮件的<head>

<%= stylesheet_link_tag 'email.css' %>

此外,当我需要包括一个图像,我发现这个助手,让我附加到电子邮件中的图像,使他们有标志和东西。

module EmailHelper
  def email_image_tag(image, **options)
    attachments[image] = File.read(Rails.root.join("public/#{image}"))
    image_tag attachments[image].url, **options
  end
end

而在.erb模板中

<%= email_image_tag "img/logo.png", :class => "some-class" %>

希望它能帮助到别人,问候

gdrx4gfi

gdrx4gfi5#

请确保将内部样式放在head标记内
例如:

<head>
    <style type="text/css">
    ...
    ...
    </style>
</head>

注意:仅内联样式和内部样式(必须在head标记中)支持。

pexxcrt2

pexxcrt26#

https://www.campaignmonitor.com/css/
显示了所有css对流行邮件客户端的支持。同时,对于最流行的gmail-client,似乎不支持display:grid/flex

相关问题