Search code examples
google-schemas

Can't get schema button to show up in GMail


I'm trying to implement an action button for the email verification step during sign up for my website. This way the user can verify their email address without having to open the message.

Here's the email contents (I'm using microdata for schema information):

<html>
<header>
    <span itemscope itemtype="http://schema.org/EmailMessage">  
       <meta itemprop="description" content="Email address verification"/>  
       <span itemprop="action" itemscope itemtype="http://schema.org/ConfirmAction">    
          <meta itemprop="name" content="Verify email"/>    
                <span itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">      
                    <link itemprop="url" href="http://www.mywebapp.com:80/start.jsp#verifyEmail:[email protected]:code=SOMECODEHERE"/>    
                </span>  
      </span>
   </span>
</header>

<body>

<div>EMAIL CONTENT GOES HERE</div>

</body>
</html>

Here' the raw output from a message (minus identifying information):

Delivered-To: [email protected]
Received: [redacted]
X-Received: [redacted]
Return-Path: <3DEudUQsJB6kPROcPaJWWRNPVJRU.LXVPaJWWRNPROcPaJWWRN.LXV@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com>
Received: from mail-qa0-x247.google.com (mail-qa0-x247.google.com [2607:f8b0:400d:c00::247])
        by mx.google.com with ESMTPS id [redacted]
        for <[email protected]>
        (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
        Wed, 22 May 2013 15:47:40 -0700 (PDT)
Received-SPF: pass (google.com: domain of 3DEudUQsJB6kPROcPaJWWRNPVJRU.LXVPaJWWRNPROcPaJWWRN.LXV@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com designates 2607:f8b0:400d:c00::247 as permitted sender) client-ip=[redacted];
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of 3DEudUQsJB6kPROcPaJWWRNPVJRU.LXVPaJWWRNPROcPaJWWRN.LXV@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com designates 2607:f8b0:400d:c00::247 as permitted sender) smtp.mail=3DEudUQsJB6kPROcPaJWWRNPVJRU.LXVPaJWWRNPROcPaJWWRN.LXV@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com;
       dkim=pass [email protected]
Received: by mail-qa0-f71.google.com with SMTP id [redacted]
        for <[email protected]>; Wed, 22 May 2013 15:47:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=mydomain.com; s=google;
        h=mime-version:reply-to:x-google-appengine-app-id
         :x-google-appengine-app-id-alias:message-id:date:subject:from:to
         :content-type;
        bh=7M8srUSN1lKnl3NbWw6ev6fOOT0hfVfJ2enr/ecjDFY=;
        b=m2wv6Vl4HXfSPSIs3WWr0GXxfjZ03FL5rTLl0b1HPVg10iMtMpDg8jLHssB7zfb3je
         U9c2qXT6/9RZlfVJrGfgj5mtawzShfu6keaKTc4XMk1QQ/jjHVzOSyySmlzNKtrrzJMW
         HcQ3Btnj14DyGHIUiViV/QGbFHrJl/E3ep/NI=
MIME-Version: 1.0
X-Received: [redacted];
 Wed, 22 May 2013 15:47:40 -0700 (PDT)
Reply-To: User UserAAA <[email protected]>
X-Google-Appengine-App-Id: s~myappid
X-Google-Appengine-App-Id-Alias: myappid
Message-ID: [redacted]
Date: Wed, 22 May 2013 22:47:40 +0000
Subject: Email verification
From: User Name <[email protected]>
To: [email protected]
Content-Type: multipart/alternative; boundary=20cf3005defc67787a04dd565a35

--20cf3005defc67787a04dd565a35
Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes

VERIFY EMAIL ADDRESS

--20cf3005defc67787a04dd565a35
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<html><header><span itemscope itemtype=3D"http://schema.org/EmailMessage"> =
 <meta itemprop=3D"description" content=3D"Email address verification for M=
yAppAppApp.com"/>  <span itemprop=3D"action" itemscope itemtype=3D"http://s=
chema.org/ConfirmAction">    <meta itemprop=3D"name" content=3D"Verify emai=
l"/>    <span itemprop=3D"handler" itemscope itemtype=3D"http://schema.org/=
HttpActionHandler">      <link itemprop=3D"url" href=3D"http://www.mydomain=
app.com:80/start_file_start.jsp#verifyEmail:[email protected]:code=
=SOMECODESOMECODESOM"/>    </span>  </span></span></header><body><div style=
=3D"font-family:Arial; font-size:12px; color:white; background-color:#96b3d=
3; padding:30px; margin:0 auto; width:500px; box-shadow: 1px 1px 4px #33333=
3, 0 0 20px #555555; margin:auto; margin-top:30px; margin-bottom:30px; bord=
er-style:solid; border-radius: 5px; border-color: #b0c1d3; border-width:2px=
;"><div>VERIFY EMAIL ADDRESS</div></body></html>
--20cf3005defc67787a04dd565a35--

I'm sending this message from myself to myself via my GAE application. In the headers of the email I receive, I see that it passes both SPF and DKIM authentication yet no buttons are rendered by GMail. The email account that receives the message belongs to Google Apps account. I've read the docs a few times over and I'm really at a loss about what I am missing here. Does anyone have a clue? Thanks.


Solution

  • The App Engine whitelisting will only go live around Monday so this is probably what is preventing your markup from being rendered.

    You can try following the Apps Script tutorial we just published to test schemas in Gmail: https://developers.google.com/gmail/schemas/apps-script-tutorial