如何在NodeJS中使用amazon-ses发送多封不同邮件正文的电子邮件(约100封)



我正试图用类似的电子邮件正文向多个用户发送电子邮件

dear {{username}},
/.
....
Your email is {{email}}
...
.
/

我该怎么做呢?我看到了亚马逊的自定义模板,但我有100多名用户,那该怎么做?

您可以使用SES批量模板化电子邮件。

  1. 为您的电子邮件创建一个模板

const AWS = require("aws-sdk");
const ses = new AWS.SES({
accessKeyId: <<YOUR_ACCESS_KEY>>,
secretAccessKey: <<YOUR_ACCESS_KEY>>,
region: <<YOUR_ACCESS_KEY>>
}); 
const params = {
Template: {
TemplateName: "MyTemplate",
SubjectPart: "Test mail for {{username}}!",
HtmlPart: "<p>Dear {{username}}</p>, <p>Your email is {{email}}.</p>"
}
}
ses.createTemplate(params, (err, data) =>  {
if (err) console.log(err, err.stack); // an error occurred
else     console.log(data);           // successful response
});

  1. 完成后,您将在SES控制台的电子邮件模板下看到MyTemplate。我们不再需要模板来创建部分代码。

  2. 现在我们可以使用以下方式发送电子邮件。

const users = [{username:"max", email: "max@m.com"},{username: "mosh", email:"mosh@h.com"}] // sample array of users
let destinations = []
for (const user of users) {
destinations.push({
Destination: {
ToAddresses: [user.email]
},
ReplacementTemplateData: JSON.stringify({
username: user.username,  // This will provide the value for username in template
email: user.email // This will provide the value for email in template
})
});
}           
const params = {
Source: "sender@xyz.com", // sender email
Template: "MyTemplate", // Template name we have created
Destinations: destinations, 
DefaultTemplateData: JSON.stringify({
username: '', // default value for username
email: '' // default value for email
})
}
ses.sendBulkTemplatedEmail(params, (err, data) =>  {
if (err) console.log(err, err.stack); // an error occurred
else     console.log(data);           // successful response
});

在运行此操作之前,请确保已为IAM用户授予ses:createTemplate和ses:sendBulkTemplatedEmail权限。

有关更多信息,请参阅此处。

最新更新