问题
I am following the guidelines as described here
https://developers.google.com/gmail/schemas/reference/one-click-action
But It's just wont appear for me. As described here
Self testing
You can easily test if your markup is working correctly end-to-end by sending emails with schemas to your Gmail account. All emails where the sender and the recipient are the same account ignore the registration requirements and can be used for self-testing.
I am using my same gmail address in both to and from address like below
GradeCard gc = new GradeCard("105106265", "BTS");
var m = new UserMailer().ConfirmSubscription("Shashwat", "user@email.com", new WatchListEmail() { fullName = "from Model", gc = gc });
Response.Write(m.Body);
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("user@email.com", "xxxxx"),
EnableSsl = true
};
client.Send(m);
HTML of generated mail is like this
<!DOCTYPE html>
<html>
<body>
<div style="width: 600px; margin: auto; font-family: 'Segoe UI';">
<h1 style="font-weight:lighter; border-bottom:1px solid #808080; padding:5px 0;">example.com</h1>
<h3 style="font-weight:lighter;">Action Required. Confirm your subscription for EN abc</h3>
<p>
Dear <b>abc</b>
</p>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"description": "Action Required. Confirm your subscription for EN 105106265",
"action": {
"@type": "ConfirmAction",
"name": "Add to watchlist",
"handler": {
"@type": "HttpActionHandler",
"url": "http://www.myignou.com?a=1&b=2"
}
}
}
</script>
<p>As you requested, We have just added your subscription to the following detailed enrollment number</p>
<p>
...
</p>
<p>
Click <a href="http://www.myignou.com?a=1&b=2">here to confirm</a>
</p>
<div style="margin:10px 0;">
<p>
Here is your most recent copy of grade card as on <b>05-09-2013 00:03:37</b><br />
Changeset ID: xxx
</p>
<table style="width: 100%; text-align: center; border-collapse: collapse;">
....
</table>
<h3 style="font-weight: lighter;">Other previous changes</h3>
<div style="padding: 10px">
<h4 style="font-weight: lighter; margin: 0">Updated on 03-09-2013 15:15:20</h4>
<div>Changeset ID: abc</div>
<div>
...
</div>
</div>
<div style="padding: 10px">
<h4 style="font-weight: lighter; margin: 0">Updated on 03-09-2013 15:14:21</h4>
<div>Changeset ID: xxx</div>
<div>
...
</div>
</div>
<div style="padding: 10px">
<h4 style="font-weight: lighter; margin: 0">Updated on 03-09-2013 15:14:21</h4>
<div>Changeset ID: abca</div>
<div>
...
</div>
</div>
</div>
<div style="padding: 10px; margin: 20px 0; background-color: #f2f0f0; font-size: 85%; color: #686868;">
<b>© 2013 myIGNOU.com</b><br />
</div>
</div>
</body>
</html>
回答1:
If you check the email headers, I'd expect that no DKIM/SPF signature can be found, and that is required even for self-testing. Without the signature, anyone can spoof your email address and send you unwanted email with actions.
回答2:
You have to be approved by Google first, in order for it to work.
To do this:
Send your validated schema-containing email to a special google email address (use this tool: https://www.google.com/webmasters/markup-tester/u/0/) ... then:
Fill out the "Gmail Schema Whitelist Request" form that describes your website and what you intend to do with the one-click action. Here's the form: https://docs.google.com/forms/d/1PA-vjjk3yJF7MLPOVKbIz3MBfhyma2obS8NIZ0JYx8I/viewform?pli=1&fbzx=-1177483801701354615
来源:https://stackoverflow.com/questions/18651446/cant-get-gmail-one-click-confirm-action-button-working