如何使用 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 在邮件中上传 .jpg 图像附件
Node.js Nodemailer 和 SES - 错误:未定义传输方法