我正试图用类似的电子邮件正文向多个用户发送电子邮件
dear {{username}},
/.
....
Your email is {{email}}
...
.
/
我该怎么做呢?我看到了亚马逊的自定义模板,但我有100多名用户,那该怎么做?
您可以使用SES批量模板化电子邮件。
- 为您的电子邮件创建一个模板
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
});
-
完成后,您将在SES控制台的电子邮件模板下看到MyTemplate。我们不再需要模板来创建部分代码。
-
现在我们可以使用以下方式发送电子邮件。
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权限。
有关更多信息,请参阅此处。