我正在嘗試使用node.js和AWS SES創建Google now卡片。無法使用電子郵件創建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] ,我得到的郵件,但谷歌現在卡我沒有得到。 我的郵件通過DIKM驗證。
AWS SES郵件有問題嗎?
當我登錄HTML文件時,我正在使用腳本獲取正確的HTML文件。
請幫幫我。
我的電子郵件進行驗證DKIM但我使用了SES。 –
您的郵件無法通過DKIM進行身份驗證,因爲您不知道DKIM的gmail.com私鑰,SES也不知道它,只有Gmail SMTP服務器知道它。因此,如果您通過其他服務發送來自@ gmail.com地址的郵件,則SPF和DKIM永遠無法生效。 – Andris
對不起,我錯誤地寫了@ gmail.com我的電子郵件是[email protected] –