1

尝试在我的电子邮件中添加“确认您的帐户”应用内操作按钮,但它不起作用。我试过移动东西,使用验证器,把它放在<head><body>(顺便说一句,它应该在哪里?文档是矛盾的)。

这是我正在尝试的消息的来源。使用 Gmail SMTP 服务器(安全)从我的本地开发 RoR 应用程序发送到我的 gmail 地址:

Return-Path: <me@gmail.com>
Received: from localhost.localdomain (97.248.35.213.dyn.estpak.ee. [213.35.248.97])
        by mx.google.com with ESMTPSA id id.00.00....
        for <me@gmail.com>
        (version=TLSv1 cipher=RC4-SHA bits=128/128);
        Sat, 08 Jun 2013 00:18:04 -0700 (PDT)
Date: Sat, 08 Jun 2013 10:18:02 +0300
From: me@gmail.com
Reply-To: me@gmail.com
To: me@gmail.com
Message-ID: <fdklsfjdklsjfd ... fdsfds@bla.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "EmailMessage",
      "description": "Confirm my account",
      "action": {
        "@type": "ConfirmAction",
        "name": "Confirm my account",
        "handler": {
          "@type": "HttpActionHandler",
          "url": "http://example.com/account/confirmation?confirmation_token=x574WeRJJNUuhiPqfVah",
        }
      }
    }
    </script>
  </head>
  <body>
    <p>Hi there, me@gmail.com!</p>

    <p>You can confirm your account email through the link below:</p>

    <p><a href="http://example.com/account/confirmation?confirmation_token=x574WeRJJNUuhiPqfVah">Confirm my account</a></p>
  </body>
</html>
4

1 回答 1

2

该按钮未显示,因为您的电子邮件未使用 DKIM/SPF 签名。如果没有签名,就无法证明发件人实际上是您自己,也无法防止恶意发件人欺骗您的电子邮件地址,因此标记会被忽略。确保将 DKIM 签名添加到代码中,一切都会按预期工作。

另请注意,处理程序 url 后有一个额外的逗号,这会使您的标记无效。您可以使用 Schema Validator 工具来检查您的标记:

https://developers.google.com/gmail/schemas/testing-your-schema

最后,回答您关于标记的正确位置的问题,无论是在内部的任何地方,<head>还是<body>工作正常。

于 2013-06-11T03:14:20.620 回答