Nodemailer在特定日期后发送电子邮件?

时间:2019-02-09 15:27:40

标签: javascript html node.js nodemailer

我正在创建一个node.js,mongoose,express和mongodb Web应用程序。我是编码新手,但我想使用nodemailer向用户发送电子邮件。具体来说,我想编写一个表格,供用户输入对他们来说很重要的电子邮件+天数。我想使用nodemailer在输入日期之前一周自动向他们发送电子邮件,以提醒他们每年的日期。我应该如何使用javascript处理此问题?我真的不知道从哪里开始。谢谢!

1 个答案:

答案 0 :(得分:0)

仅提供一种可能的方法:我将使用CRON作业来实现此方案,对于NodeJS,这意味着使用类似cron的模块。该服务可以实现为RESTful API。

具体实现取决于,取决于性能要求和属性(例如运行提醒的数量),但是一个非常基本的解决方案是将日期存储在MongoDB中,并在每次Web应用程序重新启动时重新加载。然后,您必须为每个日期创建一个CRON作业。 请注意:此策略可能会导致性能问题!

您在这里找到一个简单的伪代码,用于根据数据库中存储的日期创建CRON作业:

const cron = require('cron');

let date = new Date(...); // Date object fetched from database
let job = new cron.CronJob(date, () => {

    // Send email with nodemailer
});

job.start();