繁体   English   中英

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

[英]How to display a particular user's email only in the to section in the mail after sending mail to multiple users using 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 部分显示该特定用户(电子邮件正在接收的人)的电子邮件。 我怎么能这样做?

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

这样每个人的电子邮件的“收件人”将只反映他们。

另一种方法是将其发送给您自己,然后将所有收件人密件抄送,但我认为您不希望这样做,因为它看起来没有人情味。

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

在您当前很慢的代码中,您可能正在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 ,然后等待所有单独的承诺解决。 这应该可以更好地扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM