如何使用 node.js 动态设置 aws ses TemplateData?

Posted

技术标签:

【中文标题】如何使用 node.js 动态设置 aws ses TemplateData?【英文标题】:How to dynamically set aws ses TemplateData using node.js? 【发布时间】:2021-07-27 15:10:40 【问题描述】:

我正在尝试发送包含自定义数据的电子邮件。

async function sendEmailToSalesTeamOnBookingDemoClass(email,name,phoneNumber,utmSource,utmTerm,utmMedium,deviceType,browser,referrer) 
  try 
      let emailMe = "abc@gmail.com"
      const ses = new AWS.SES( apiVersion: "2010-12-01" );
      const params = 
        Destination: 
          ToAddresses: [emailMe]
        ,
        Source: senderEmail,
        Template: "Sales_Email_Demo",
        TemplateData : JSON.stringify(
          "name": name,
          "email": email,
          "phone": phoneNumber,
          "utmSource":utmSource,
          "utmTerm":utmTerm,
           "utmMedium":utmMedium,
           "browser":browser,
           "referrer":referrer,
           "deviceType":deviceType
       ),
        Tags: [                                       
          
            Name: 'SomeName',
            Value: 'info'
          
        ]
      ;
      const sendEmailReceiver = ses.sendTemplatedEmail(params).promise();
      sendEmailReceiver
        .then(data => 
          console.log(senderEmail,emailMe)
          console.log("Email submitted to SES", data);
        )
        .catch(error => 
          console.log("Email not submitted to SES:" + error);
        );
  
  catch (e) 
    console.error(`Error: $e`);
  

回复说邮件发送成功。

Email submitted to SES 
  ResponseMetadata:  RequestId: 'c08b9948-7be3-465d-a72c-fcca23f9f059' ,
  MessageId: '010901793bd95a02-813072dc-bb87-4b65-91c4-03f7f29dcbd0-000000'

但是,即使发件人的电子邮件已经过验证和测试,也没有收到电子邮件。我的模板有问题吗?

        
        "Template": 
          "TemplateName": "Sales_Email_Demo",
          "SubjectPart": "some subject!",
          "htmlPart": "<html> <body><p>Hello,</p><p>Details:</p><p>Name:name</p><p>Phone Number: phoneNumber</p><p>Email Id: emailId</p><p>Source: utmSource</p><p>Medium: utmMedium</p><p>Term:utmTerm</p><p>Device:deviceType</p><p>Browser:browser</p><p>Referrer: referrer</p></body></html>"
          
        

【问题讨论】:

【参考方案1】:

我想通了。问题出在模板上。发送变量和接收变量的名称不同。

【讨论】:

以上是关于如何使用 node.js 动态设置 aws ses TemplateData?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:使用 AWS SES 发送电子邮件

使用来自 node.js 的 AWS SES 在邮件中上传 .jpg 图像附件

Node.js Nodemailer 和 SES - 错误:未定义传输方法

Node.Js AWS SES - 发送电子邮件时的 ETIMEDOUT

AWS-SES:如何设置发件人地址的显示名称

Ruby/node.js + Amazon SES:是不是有 Amazon SES API?