所以我设置了这个 nodemailer 功能,在那里我查询我的数据库以获取注册用户的列表,并向他们发送电子邮件......但问题是,我必须手动输入我想要发送的用户电子邮件,然后密送其他所有人,这样他们就看不到其他用户。我想要的是让每个用户一次发送相同的电子邮件,但他们不应该看到其他收据(比如当你收到来自商店或其他东西的电子邮件时)......这就是我所拥有的:
app.post('/sendBatchEmail', (req, res) => {
var emails = [];
var emailSubject = req.body.emailSubject;
var emailMessage = req.body.emailMessage;
//perform db2 send
var sendEmail = "select * from testEmails"
ibmdb.open(ibmdbconnMaster, function (err, conn) {
if (err) return console.log(err);
conn.query(sendEmail, function (err, rows) {
if (err) {
console.log(err);
}
for (var i = 0; i < rows.length; i++) {
emails.push(rows[i].EMAIL)
}
//send email
async function main() {
let transporter = nodemailer.createTransport({
host: "smtphm.sympatico.ca",
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: "xxx@bell.net",
pass: "xxx",
},
});
// send mail with defined transport object
let sendBatch = await transporter.sendMail({
from: "xxx@bell.net", // sender address
to: "reciever@gmail.com",
bcc: emails, // list of receivers
subject: emailSubject, // Subject line
text: emailMessage, // plain text body
});
console.log("Message sent: %s", sendBatch.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
}
main().catch(console.error);
res.redirect("/");
conn.close(function () {
console.log("closed the function app.get(/sendBatchEmail)");
});
});
});
})
知道如何做到这一点吗?
答案 0 :(得分:0)
回答了我自己的问题:
就这样:
// send mail with defined transport object
let sendBatch = await transporter.sendMail({
from: "xx@bell.net", // sender address
to: "Undiscoled Recipents",
bcc: emails, // list of receivers
subject: emailSubject, // Subject line
text: emailMessage, // plain text body
});
就像一个魅力,在电子邮件中甚至没有 to
字段,只显示如下:
from: xx@bell.net
Subject: test email