[英]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.