当我使用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
,然后等待所有单独的承诺得到解决。这应该能更好地扩展。