私の使用例では、複数の BCC 受信者を含む 1 つのメールを送信する必要があり、それぞれが独自の置換を使用しています。
SendGrid の Node Library "Kitchen Sink" の例をいくつかの静的テスト データで使用しようとしています。BCC 受信者でメッセージを作成できますが、各受信者は最後の置換値セットを受信しています。
私のコードの関連部分は次のとおりです。
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);
その結果、各 bcc 受信者は最後の置換値を受け取ります。
%dollars% = 50
%points_for_play% = 1000
また、BCC 受信者ごとに新しいパーソナライゼーションを作成しようとしましたが、その結果、パーソナライゼーション インスタンスには "to" 配列が必要であるというエラーが発生し、正しくないようです... どこが間違っているのでしょうか?