使用 SendGrid 的节点库为 BCC 收件人添加替换
Adding Substitutions for BCC recipients using SendGrid's Node library
我的用例是这样的,我需要发送一封包含多个密件抄送收件人的电子邮件,每个收件人都有自己的替换。
我正在尝试将 SendGrid's Node Library "Kitchen Sink" example 与一些静态测试数据一起使用。我可以创建一条包含密件抄送收件人的消息,但是,每个收件人都会收到最后一组替换值。
以下是我的代码的相关部分:
const mail = new helper.Mail();
const personalization = new helper.Personalization();
const testData = [
{
email: 'recipient1@gmail.com',
name: 'Bob Smith',
dollars: '100',
points_for_play: '2500',
},
{
email: 'recipient2@gmail.com',
name: 'Mary Smith',
dollars: '50',
points_for_play: '1000',
},
];
testData.forEach(function(recipientData) {
var substitutionValues = _.omit(recipientData, ['email', 'name']);
var bccRecipient = new helper.Email(recipientData.email, recipientData.name);
personalization.addBcc(bccRecipient);
_.forOwn(substitutionValues, function(value, key) {
var substitution = new helper.Substitution('%' + key + '%', value);
personalization.addSubstitution(substitution);
});
});
mail.addPersonalization(personalization);
结果是每个密件抄送收件人都会收到最后的替换值:
%dollars% = 50
%points_for_play% = 1000
我也试过为每个 BCC 收件人创建一个新的个性化,但这会导致错误,指出个性化实例需要一个 "to" 数组,这似乎不正确...我在哪里哪里出错了?
截至 7/2017,v3 API 尚不支持 BCC 替换,但根据 SendGrid 支持,它们在 SMTP API 中。
我的用例是这样的,我需要发送一封包含多个密件抄送收件人的电子邮件,每个收件人都有自己的替换。
我正在尝试将 SendGrid's Node Library "Kitchen Sink" example 与一些静态测试数据一起使用。我可以创建一条包含密件抄送收件人的消息,但是,每个收件人都会收到最后一组替换值。
以下是我的代码的相关部分:
const mail = new helper.Mail();
const personalization = new helper.Personalization();
const testData = [
{
email: 'recipient1@gmail.com',
name: 'Bob Smith',
dollars: '100',
points_for_play: '2500',
},
{
email: 'recipient2@gmail.com',
name: 'Mary Smith',
dollars: '50',
points_for_play: '1000',
},
];
testData.forEach(function(recipientData) {
var substitutionValues = _.omit(recipientData, ['email', 'name']);
var bccRecipient = new helper.Email(recipientData.email, recipientData.name);
personalization.addBcc(bccRecipient);
_.forOwn(substitutionValues, function(value, key) {
var substitution = new helper.Substitution('%' + key + '%', value);
personalization.addSubstitution(substitution);
});
});
mail.addPersonalization(personalization);
结果是每个密件抄送收件人都会收到最后的替换值:
%dollars% = 50
%points_for_play% = 1000
我也试过为每个 BCC 收件人创建一个新的个性化,但这会导致错误,指出个性化实例需要一个 "to" 数组,这似乎不正确...我在哪里哪里出错了?
截至 7/2017,v3 API 尚不支持 BCC 替换,但根据 SendGrid 支持,它们在 SMTP API 中。