无法使用电子邮件创buildGoogle now卡

我正在尝试使用node.js和AWS SES创buildgoogle now卡。

我的HTML是:

<html> <body> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "EventReservation", "reservationNumber": data_bookingId, "reservationStatus": "http://schema.org/Confirmed", "underName": { "@type": "Person", "name": data_userFirstName }, "reservationFor": { "@type": "Event", "name": data_eventTitle, "startDate": data_startTime, "location": { "@type": "Place", "name": data_shortAddress, "address": { "@type": "PostalAddress", "streetAddress": data_address1, "addressLocality":data_address2, "addressRegion": data_city, "postalCode": data_pincode, "addressCountry": "IN" } } }, "numSeats":data_numberOfReserves, "bookingAgent":{ "image":data_featured_image } } </script> <p> Dear data_userFirstName, thanks for booking your data_eventTitle ticket with us. </p> <p> BOOKING DETAILS<br/> Order for: data_userFirstName <br/> Event: data_eventTitle <br/> When: data_startTime<br/> Venue: data_address1 , data_address2, data_city - data_pincode IN <br/> Reservation number: data_bookingId <br/> </p> </body> </html> 

而我的代码是:
nowCard.html

  var nodemailer = require('nodemailer'); var fs = require('fs'); var aws = require('aws-sdk'); var awsSesMail= function(mailOptions) { console.log("emailTemplate=====>\n",mailOptions.Message.Body.Html.Data); aws.config.loadFromPath('./config.json'); var ses = new aws.SES({ apiVersion: '2012-10-17' }); ses.sendEmail(mailOptions,function(err, data) { if (data) { print('Email sent:'); print(data); } else { print('Email not sent:\n') print(err); } }); }; createGoogleNowCard = function (data) { var mapObj= {'data_bookingId':"BN-"+data.bookingId,data_userFirstName:data.userFirstName,data_eventTitle:data.eventTitle,data_startTime:data.startTime,data_shortAddress:data.shortAddress,data_address1:data.address1,data_address2:data.address2,data_city:data.city,data_pincode:data.pincode,data_numberOfReserves:data.numberOfReserves,data_featured_image:data.featured_image} //read the template file var emailTemplate = fs.readFileSync('./views/nowCard.html',"utf-8"); var regexp = new RegExp(Object.keys(mapObj).join("|"),"gi"); //replace the snippet with actual data emailTemplate = emailTemplate.replace(regexp, function(matched){ return '"'+mapObj[matched]+'"'; }); var emailTemplate = fs.readFileSync('./nowCard.js',"utf-8"); var mailOptions = { Source: 'xyz@gmail.com', Destination: { ToAddresses: ['xyz@gmail.com'] }, Message: { Subject: { Data: "New Booking" }, Body: { Text: { Data: "New Booking" }, Html:{ Data:emailTemplate } } } }; awsSesMail(mailOptions); }; 

我从xyz@domain.com发送邮件到abc@domain.com,我收到的邮件,但谷歌现在卡我没有得到。 我的邮件通过DIKMvalidation。

AWS SES邮件有问题吗?

当我login的HTML文件,我得到正确的HTML文件与脚本。

请帮帮我。

您的邮件需要由DKIM或SPF进行validation才能使电子邮件操作起作用。 您不能自己为gmail.com设置DKIM或SPF,因此您必须通过Gmail SMTP而不是通过AWS SES发送邮件

  1. 您需要使用DKIM或SPF进行身份validation
  2. 您需要向Google注册。

以下是他们的通知页面:

要为您的用户启用Google即时贴,您需要向Google注册。 但是,为了testing目的,您可以发送电子邮件给自己(从x @ gmail.com到x @ gmail.com),您的标记将显示在Google产品中。

https://developers.google.com/schemas/tutorials/google-now-cards