Я пытаюсь создать карту google now с node.js и AWS SES.Не удалось создать карточку google 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: '[email protected]',
Destination: {
ToAddresses: ['[email protected]']
},
Message: {
Subject: {
Data: "New Booking"
},
Body: {
Text: {
Data: "New Booking"
},
Html:{
Data:emailTemplate
}
}
}
};
awsSesMail(mailOptions);
};
Я посылаю почту от [email protected] к [email protected] , Я получаю почту, но google now card, которую я не получаю. Моя почта аутентифицирована с помощью DIKM.
Это что-то не так с AWS SES mail.
Пока я регистрирую файл HTML, я получаю правильный HTML-файл со сценарием.
Пожалуйста, помогите мне.
моя электронная почта проходит проверку подлинности с DKIM, но я использую SES. –
Ваше сообщение не может быть заверено с помощью DKIM, потому что вы не знаете секретный ключ gmail.com для DKIM, и SES тоже этого не знает, только SMTP-сервер Gmail знает это. Поэтому, если вы отправляете сообщения с адресов электронной почты через адрес какой-либо другой службы, тогда SPF и DKIM никогда не будут действительны. – Andris
жаль, что я ошибочно написал @ gmail.com мой адрес: [email protected] –