我使用Nodemailer在我的NodeJS/Express服务器中发送邮件。我不想直接发送邮件,而是希望在发送邮件之前等待20分钟。我认为这样直接发送邮件会更有个性。NodeJS发送延迟电子邮件
但我不知道如何做到这一点。我想我不需要像这个NodeCron包这样的NodeJS cronjob,或者我需要?
router.post('/', (req, res) => {
const transporter = nodemailer.createTransport(smtpTransport({
host: 'smtp.gmail.com',
port: 465,
auth: {
user: '[email protected]',
pass: 'pass123'
}
}));
const mailOptions = {
from: `"${req.body.name}" <${req.body.email}>`,
to: '[email protected]',
subject: 'Form send',
html: `Content`
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) res.status(500).json({ responseText: error });
res.status(200).json({ responseText: 'Message send!' });
});
}
});
我的路由器看起来像上图所示。所以如果发布帖子,我希望这个请求等待20分钟。而不是使用cronjob,我只想执行一次该帖子,但有点延迟。有关如何做到这一点的任何建议?
嘿拉霍斯,你还记得我的想法,我刚刚更新了我的答案,包括同样的担忧:) – CharlieBrown
@CharlieBrown是的,看起来我们觉得在这里:) –
非常感谢与@CharlieBrown一起指出这一点!我会去解决这个问题,标记就是我接受的答案。 – ronnyrr