我需要帮助使用 nodemailer 发送特定数量的电子邮件,假设我想向特定的人发送 20 封电子邮件。
这是我的代码。
const transporter = nodemailer.createTransport(smtpTransport({
host: "smpt.gmail.com", //smtp server
port: 587,
pool: true,
secure: false, // true for 465, false for other ports
auth: {
user: "[email protected] /cdn-cgi/l/email-protection", // mail
pass: "testtesttest" // password
}
}));
transporter.close();
// setup email data with unicode symbols
let mailOptions = {
from: '"Test Test" <[email protected] /cdn-cgi/l/email-protection>', // sender address
to: mailto, // list of receivers
subject: args[1], // Subject line
text: args[2] //
};
async function sendMail() {
let info = await transporter.sendMail(mailOptions);
sending = true;
}
const SendingMessage = setInterval(() => {
var mailto = args[0];
mailOptions.subject = args[1];
var mailtxt = args[2];
sendMail();
}, 1500);
我如何让它发送“嘿”这样的消息给[电子邮件受保护] /cdn-cgi/l/email-protection仅5次。因为目前它只会发送“嘿”,直到我达到我的 smtp 发送限制
首先创建一个要发送的邮件内容数组,例如;
const mails2send = [
{
from: '..',
to: '..',
subject: '..'
text: '..'
},
{
from: '..',
to: '..',
subject: '..'
text: '..'
},
{
from: '..',
to: '..',
subject: '..'
text: '..'
}
]
修改 sendMail 函数以接受参数。
async function sendMail(mailOptions) {
let info = await transporter.sendMail(mailOptions);
sending = true;
return sending;
}
然后通过映射mails2send
mails2send.forEach( item => sendMail(item ))
Update看来您可能正在谈论您的 setInterval 函数
let counter = 0;
const SendingMessage = setInterval(() => {
var mailto = args[0];
mailOptions.subject = args[1];
var mailtxt = args[2];
sendMail();
if (counter === 4) {
return clearInterval(SendingMessage); //<-- clear the interval when reach 5.
}
counter++ //<-- counter increment.
}, 1500);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)