簡體   English   中英

我正在使用 nodemailer,我需要將 email 發送給數組中的所有用戶?

[英]I am using nodemailer and I need to send email to all the users in a array?

我正在使用 nodejs 和 nodemailer 向用戶發送電子郵件。

我有一個這樣的用戶列表:-

[
  {
    name: "John Doe",
    email: "john@something.com"
  }, 
  { 
    name: "Jane Doe",
    email: "jane@something.com"
  }
  ...and more.
]

如何使用 nodemailer 將 email 發送給數組中的所有用戶。

查看我的代碼 -

users.map(user => {
          const mailOptions = {
              from: '*****@gmail.com',
              to: user.email,
              subject: subject, // Any subject
              text: message // Any message
          }

          transporter.sendMail(mailOptions, (err, info) => {
              if (err) {
                  console.log(err)
              } else {
                  console.log(info)   
              }
          })
   })

這是這樣做的正確方法嗎?

提前致謝 !

將電子郵件數組轉換為逗號分隔的字符串

const recipients = users.map(user=>user.email).join(',');
// 'john@something.com','jane@something.com'

現在你有了所有的收件人。 接下來使用nodemailer示例一次向所有收件人發送電子郵件

您的代碼將起作用。 但是,如果您想將相同的 email 發送給許多收件人,有一種更簡單的方法可以做到這一點。

正如您在nodemailer 文檔中看到的那樣, to字段是comma-separated list or an array of recipients email addresses that will appear on the To: field 所以像這樣的東西可以完成這項工作

const userEmails = users.map(item => item.email); // array of user email
const mailOptions = { // send the same email to many users
    from: '*****@gmail.com',
    to: userEmails, 
    subject: subject, // Any subject
    text: message // Any message
}

transporter.sendMail(mailOptions, (err, info) => {
   if (err) {
      console.log(err)
   } else {
      console.log(info)   
   }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM