【问题标题】:How to send mandrill emails to array of emails?如何将山魈电子邮件发送到电子邮件数组?
【发布时间】:2018-12-05 20:04:52
【问题描述】:

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

【问题讨论】:

标签: javascript node.js mandrill


【解决方案1】:

从我查看文档后收集到的信息来看,“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

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 2015-09-07
    • 2015-07-16
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2012-07-02
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多