首页 > 解决方案 > gmail是否阻止了未签名邮件的html样式?

问题描述

我正在尝试设置一个电子邮件验证系统,作为我正在开发的辅助项目 Web 应用程序的一部分。该系统使用 Rails 通过邮件程序在 linux 服务器上发送电子邮件。我正在使用我的个人电子邮件地址(恰好是 gmail 地址)作为测试用例。HTML 电子邮件的样式信息嵌入在 HTML 电子邮件的<style>标签中<head>。这似乎是正确的,尽管很难说它完全正确,因为样式数据很长。(同样的样式数据适用于应用程序的 Web 版本,我将其嵌入到电子邮件中 ​​- 我最终将为电子邮件创建一个单独的样式表,其中仅包含相关样式,但现在,我正在使用为了简单起见,我的 Web 样式表)

正如我所料,电子邮件中似乎没有显示任何样式。我注意到我收到的邮件名称旁边有一个小问号,表示该邮件未通过 google 身份验证。消息头还包含以下内容:

ARC-Authentication-Results: i=1; mx.google.com;
       spf=neutral (google.com: 45.56.123.196 is neither permitted nor denied by best guess record for domain of no-reply@myapplication.io) smtp.mailfrom=no-reply@myapplication.io

我想知道是否缺少 SPF 验证导致谷歌不显示电子邮件 HTML 版本的样式数据?我似乎找不到另一个理由。我没有另一个不使用 gmail 作为客户端的电子邮件地址(我的工作和其他个人电子邮件都使用 gmail),所以我不能测试它是否不是通过 google 路由的。得到解决。

rails 的邮件预览似乎表明 HTML 电子邮件应该可以工作,但 gmail 的显示方式与邮件预览不同(事实上,甚至没有关闭)。我不太确定我能做些什么来解决这个问题,所以欢迎任何关于我可以做些什么来帮助解决这个问题的建议。

标签: cssruby-on-railsemail

解决方案


SPF 不应该是与风格相关的问题。gmail您可以通过从域(SMTP 配置中的发件人域)和您自己的 gmail 地址发送电子邮件来确保这一点。如果它有效,那么问题不应该出现在 SPF 中。

但是,当您的电子邮件到达 SAPM 时,您会遇到问题,在这种情况下,外部 URL 将不起作用,因为 Gmail 会出于安全目的限制外部 API 调用,因此如果您加载任何图像或任何其他资产,那么它将无法正常工作。这就是为什么电子邮件中的图像无法在垃圾邮件中打开的原因。

注意如果您的样式标签有语法错误,Gmail 将删除整个样式。所以请确保您没有任何语法错误。你有很多在线工具来验证语法错误。

仅供参考:最好也解决 SPF 问题,否则您的电子邮件将进入垃圾邮件,因为大多数 ESP 都希望通过 SPF、DKIM 和 DMARC。


推荐阅读