通过特快专递问题向多个收件人发送电子邮件

Sending email to multiple recipients via express-mailer issue

我正在使用 nodejs 创建一个简单的发送邮件功能。电子邮件由 express-mailer 模块

处理

下面是我的app.js

的一部分
var express = require('express');
var app = express();
var mailer = require('express-mailer');
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

mailer.extend(app, {
    from: 'no-reply@example.com',
    host: 'smtp.gmail.com',
    secureConnection: true,
    port: 465,
    transportMethod: 'SMTP',
    auth: {
        user: 'mymail@gmail.com',
        pass: 'mygmailpass'
    }
});

app.mailer.send('email', {
    to: 'test75@gmail.com,test4@gmail.com,test21@gmail.com',
    subject: 'Password reset', // REQUIRED. 
    body: 'Your Password is set to xxxxx. Please log in back.,',
    otherProperty: 'Other Property'
}, function(err) {
    if (err) {

        console.log(err);

        return;
    }
    console.log('mail sent');
});

这是我的电子邮件模板,email.jade

doctype html
html
  head
    meta(http-equiv = 'Content-Type', content = 'text/html; charset=UTF-8')
    title= subject
    body
      p
        =body

上面的应用程序运行良好,电子邮件被发送到收件人。问题是当有多个收件人时,这是单个收件人如何接收电子邮件的图片:

请注意上图,当收件人收到电子邮件时,他们可以查看也收到了同一封电子邮件的所有其他收件人。是什么导致了这种行为,如何避免?

目前在你的情况下

这里实际上是一封发送给多个收件人的电子邮件。您需要向每个单独的收件人发送一封单独​​的电子邮件才能实现您的目标。

选项

  1. 您将不得不使用循环并向每个收件人发送单独的电子邮件。
  2. 您可以使用 bcc 选项隐藏电子邮件地址。

如果您将所有电子邮件都放在 to 字段中,那么您将无法对其他收件人隐藏电子邮件地址。

例如更新代码如下

var addresses = ['test75@gmail.com','test4@gmail.com','test21@gmail.com'];

var index, len;
for (index = 0, len = addresses.length; index < len; index++) {
  var email = addresses[index]; 
  app.mailer.send('email', {
    to: email,
    subject: 'Password reset', // REQUIRED. 
    body: 'Your Password is set to xxxxx. Please log in back.,',
    otherProperty: 'Other Property'
  }, function(err) {
    if (err) {

        console.log(err);

        return;
    }
    console.log('mail sent');
  });
}