在使用nodemailer向多个用户发送邮件后,如何在邮件的"收件人"部分中仅显示特定用户的电子邮件



当我使用nodemailer向多个用户发送电子邮件时,如下所示。在体内,to作为'one@gmail.com, two@gmail.com'出现


const mailOptions = {
from: 'from@gmail.com',
to: request.body.to,
subject: request.body.subject,
text: request.body.text,
}
let result = await transport.sendMail(mailOptions)

现在,当我打开邮件并看到时

from: from@gmail.com
to:   one@gmail.com
two@gmail.com
Date: 20 July 2021

在"收件人"部分:显示所有用户的电子邮件。虽然我已经向多个用户发送了邮件,但我只想在to部分显示该特定用户(电子邮件正在接收(的电子邮件。我该怎么做?

要获得想要的效果,请多次发送电子邮件,每个人一次

这样;至";每个人的电子邮件将只反映他们。

另一种选择是将其发送给自己,并将所有收件人抄送给BCC,但我认为你不希望这样,因为这似乎没有人情味。

在开始发送下一封电子邮件之前,您不必等待每封电子邮件的发送

在当前速度较慢的代码中,您可能正在await中为每个收件人生成sendMail的结果,然后开始下一个sendMail

const recipients = ["a@gmail.com","b@gmail.com"];
const promiseArray = recipients.map(recipient=>{
const mailOptions = {
from: 'from@gmail.com',
to: recipient,
subject: request.body.subject,
text: request.body.text,
}
return transport.sendMail(mailOptions)
})
const resultArray = await Promise.all(promiseArray)

然而,通过采用此处的方法,您将首先启动所有单独的sendMail,然后等待所有单独的承诺得到解决。这应该能更好地扩展。

相关内容

  • 没有找到相关文章

最新更新