【问题标题】:Email markup-Gmail modifying the <script> tag to add extra string "3D"电子邮件标记-Gmail 修改 <script> 标签以添加额外的字符串“3D”
【发布时间】:2017-05-06 14:43:04
【问题描述】:

我正在使用 Ruby on Rails 生成电子邮件。正如Email markup docs 中提到的,我修改了我的 (*.html.haml) 模板以包含 电子邮件标记 的架构。以下代码来自我的邮件模板:

%script{ type: "application/ld+json" }
  {
  "@context" : "http://schema.org",
  "@type" : "FoodEstablishmentReservation",
  "reservationNumber" : "#{reservation.id}",
  ...
  }

我还将电子邮件的发件人和收件人修改为与here 中提到的相同的电子邮件 ID,以便在开发模式下测试架构。

当我在我的 Gmail 收件箱中收到电子邮件时,我没有看到任何与以前不同的内容。当我检查电子邮件的原始消息时,它显示:

Return-Path: <breezebhoewal@gmail.com>
...
Date: Wed, 21 Dec 2016 13:14:45 +0530
From: breezebhoewal@gmail.com
To: breezebhoewal@gmail.com
...
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_585a32ecf2d94_143673fd10d24128893014"; charset=UTF-8
Content-Transfer-Encoding: 7bit

----==_mimepart_585a32ecf2d94_143673fd10d24128893014
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
...
<script type=3D'application/ld+json'>
  {
  "@context" : "http://schema.org",
  "@type" : "FoodEstablishmentReservation",
  "reservationNumber" : "<reservation-id>",
  ...
  }
</script>
...

现在,如果我在Email markup tester 中验证此&lt;script&gt; 标记内容,它会说“不存在结构化数据”,但只要我从&lt;script&gt; 标记中删除“3D”并使其成为&lt;script type='application/ld+json'&gt; ,它会为所有字段正确提取结构化数据。

所以,我无法弄清楚为什么这个额外的字符串“3D”会被添加到 HTML 中?是因为哈姆吗?还是 Gmail 呢?并且有什么我可以解决的问题来在开发环境中测试这个电子邮件标记。如果需要更多信息,请告诉我。

【问题讨论】:

  • 它是一个电子邮件编码系统,它允许将非 ASCII 字符表示为 ASCII 用于电子邮件传输。这种编码称为“quoted-printable”,这就是为什么您的电子邮件中有 3D 值。如果你会检查这个相关的SO post,它讨论了一些避免这种情况的方法,比如将其更改为“Content-Transfer-Encoding”。希望这会有所帮助。
  • 你找到解决方法了吗?

标签: html ruby-on-rails email google-schemas


【解决方案1】:

您可以尝试在标题中添加此元标记

 <meta charset="charset=ISO-8859-1"/>

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。原来我有一些误解,我将帮助澄清:

    1) 如上所述,您在 gmail 中看到的“原始消息”被编码为quoted-printable。您首先必须解码消息,例如使用 Quoted Printable Converter,解码后的消息不包含任何3D。然后,解码后的消息将使用您引用的电子邮件标记测试器正确(大概)验证。

    2) 我来到这个线程是因为我正在使用电子邮件标记调试我的集成。标记未显示在测试电子邮件中,我认为我执行不正确。我发现我的电子邮件架构集成必须由 Google 提供 whitelisted 才能使用这些功能。

    我希望这会有所帮助。

    【讨论】:

    • 您无需注册 Google 即可使用 OP 正在做的同一帐户向您自己发送测试电子邮件。来自文档:“您发送给自己的所有架构(从 x@gmail.com 到 x@gmail.com)都将显示在 Google 产品中。所以现在就去试试吧!”
    猜你喜欢
    • 1970-01-01
    • 2014-05-26
    • 2018-10-19
    • 2010-12-20
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    相关资源
    最近更新 更多