css - 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 的显示方式与邮件预览不同(事实上,甚至没有关闭)。我不太确定我能做些什么来解决这个问题,所以欢迎任何关于我可以做些什么来帮助解决这个问题的建议。
解决方案
SPF 不应该是与风格相关的问题。gmail
您可以通过从域(SMTP 配置中的发件人域)和您自己的 gmail 地址发送电子邮件来确保这一点。如果它有效,那么问题不应该出现在 SPF 中。
但是,当您的电子邮件到达 SAPM 时,您会遇到问题,在这种情况下,外部 URL 将不起作用,因为 Gmail 会出于安全目的限制外部 API 调用,因此如果您加载任何图像或任何其他资产,那么它将无法正常工作。这就是为什么电子邮件中的图像无法在垃圾邮件中打开的原因。
注意:如果您的样式标签有语法错误,Gmail 将删除整个样式。所以请确保您没有任何语法错误。你有很多在线工具来验证语法错误。
仅供参考:最好也解决 SPF 问题,否则您的电子邮件将进入垃圾邮件,因为大多数 ESP 都希望通过 SPF、DKIM 和 DMARC。
推荐阅读
- powerbi - 如何从两个表中按日期过滤的相关表中获取计数
- python - 在不使用太多 RAM 的情况下将列表转换为 numpy 数组
- sql - sql表比较-postgres
- sql-server - 使用随机值更新每个组 (SQL Server)
- ios - 通过 Xcode 11.4 推送功能在模拟器上触发 UNNotificationServiceExtension
- flutter - Flutter 启用并聚焦 textformfield
- bash - Bash 测试变量和程序在同一条语句中退出
- xamarin.forms - 从主详细信息中的选项卡式页面导航到登录页面时,应用程序在 iOS13+ 中崩溃
- c++ - 为什么 Valgrind 在不释放 malloc 的内存后不报告任何问题?
- php - MPDF Wordpress 引入变量