1

我正在嘗試使用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文件。

請幫幫我。

回答

2

您的郵件需要由DKIM或SPF進行驗證才能使郵件操作正常工作。你不能設置DKIM和SPF爲gmail.com自己,所以你必須通過Gmail SMTP,而不是通過AWS SES

+0

我的電子郵件進行驗證DKIM但我使用了SES。 –

+0

您的郵件無法通過DKIM進行身份驗證,因爲您不知道DKIM的gmail.com私鑰,SES也不知道它,只有Gmail SMTP服務器知道它。因此,如果您通過其他服務發送來自@ gmail.com地址的郵件,則SPF和DKIM永遠無法生效。 – Andris

+0

對不起,我錯誤地寫了@ gmail.com我的電子郵件是[email protected] –

相關問題