如何将 mandrill 电子邮件发送到电子邮件数组?

How to send mandrill emails to array of emails?

我正在 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 能够识别数组中的电子邮件:(

根据我查看文档后收集到的信息,"to" 数组中的每个对象似乎都是一个单独的电子邮件地址。

我不会 运行 每个电子邮件地址的功能。只需映射电子邮件数组。 例如:

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