我正在 Node 中构建一个应用程序,每次有新用户发送电子邮件到预定义的电子邮件数组时,我都会使用 mandrill 发送电子邮件。我有一系列电子邮件:
我有这个功能在哪里
newUserEmail(user_name, email) {
emailArray = [example1@ex.com, example2@ex.com, example3@ex.com]
const message = {
html: '<p>Name: *|NAME|* <br> Email: *|EMAIL|*</p>',
text: 'Name: *|NAME|*, Email: *|EMAIL|*',
subject: 'New person arrived',
from_email: 'newperson@example.com',
from_name: 'New',
to: [{
email: emailArray,
type: 'to'
}],
merge: true,
merge_vars: [{
rcpt: emailArray,
vars: [{
name: 'NAME',
content: user_name
}, {
email: 'EMAIL',
content: email
}]
}]
};
mandrill_client.messages.send({ message }, function(result) {
console.log(result);
}, function(e) {
console.log(`A mandrill error occurred: ${e.name} - ${e.message}`);
});
}
我在我的控制台上得到了这个:
[ { email: 'Array',
status: 'invalid',
_id: '...',
reject_reason: null } ]
如果我只设置一个电子邮件,它可以毫无问题地发送。
我是否需要创建一个循环并运行此函数的次数与数组中的电子邮件数一样多?我希望 mandrill 能够识别数组中的电子邮件 :(
最佳答案
根据我查看文档后收集到的信息,“收件人”数组中的每个对象似乎都是一个单独的电子邮件地址。
我不会为每个电子邮件地址运行该函数。只需映射电子邮件数组。 例如:
const formattedArray = emailArray.map(email => ({ email, type: 'to' }));
// if you're not a fan of arrow functions
const formattedArray = emailArray.map(function(email) {
return { email, type: 'to' };
});
然后在 mandrill 消息中,您可以将“to”设置为等于 formattedArray
to: formattedArray
关于javascript - 如何将 mandrill 电子邮件发送到电子邮件数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51054095/