1

Я пытаюсь создать карту 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-файл со сценарием.

Пожалуйста, помогите мне.

ответ

2

Ваше сообщение должно быть подтверждено либо DKIM, либо SPF для работы электронной почты. Вы не можете установить DKIM или SPF для gmail.com себя, так что вы должны отправить сообщение через Gmail SMTP, а не через AWS SES

+0

моя электронная почта проходит проверку подлинности с DKIM, но я использую SES. –

+0

Ваше сообщение не может быть заверено с помощью DKIM, потому что вы не знаете секретный ключ gmail.com для DKIM, и SES тоже этого не знает, только SMTP-сервер Gmail знает это. Поэтому, если вы отправляете сообщения с адресов электронной почты через адрес какой-либо другой службы, тогда SPF и DKIM никогда не будут действительны. – Andris

+0

жаль, что я ошибочно написал @ gmail.com мой адрес: [email protected] –

0
  1. Вы должны авторизоваться DKIM или SPF И
  2. You необходимо зарегистрироваться в Google.

Вот их страница с уведомлением:

Чтобы запустить Google Now карты для ваших пользователей, вы должны зарегистрироваться с Google. Тем не менее, для целей тестирования вы можете отправлять электронные письма по адресу (от [email protected] до [email protected]), а ваша разметка будет , отображаемая в продуктах Google.

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