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

时间:2017-12-13 10:25:11

标签: javascript node.js nodemailer

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

处理

以下是 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

上述应用程序运行良好,电子邮件将被触发给收件人。问题是当有多个收件人时,这是个人收件人如何收到电子邮件的图像:

enter image description here

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

1 个答案:

答案 0 :(得分:0)

目前在你的情况下

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

选项

  1. 您必须使用循环并向每个收件人发送单独的电子邮件。
  2. 您可以使用bcc选项隐藏电子邮件地址。
  3. 如果您将所有电子邮件都放在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');
      });
    }