使用 node.js 从 Angular 发送预定的电子邮件报告

时间:2021-04-06 11:06:10

标签: node.js angular email cron nodemailer

我已经建立了一个 Angular 项目,它正在使用来自 NodeJS 应用程序的 API。

Angular 仪表板有一些报告/图表,我将在 DB 的某处配置一个时间表。 我想添加日程安排功能,以便我会收到一封包含图形/图表作为电子邮件正文的自动电子邮件。

任何人都可以在这里指导我!

2 个答案:

答案 0 :(得分:0)

您可以使用 npm node-schedule 中的 node-schedule 包,它可以帮助您在想要发送电子邮件时安排 cron 作业。

const schedule = require('node-schedule')

const job = schedule.scheduleJob('21 * * * *', function(){
  console.log('Send my email.')
})

这将在任何小时的 21 分钟执行此 cron。

您可以通过 npm 包了解更多调度细节。

答案 1 :(得分:0)

您的日程安排必须在 NodeJS 应用程序之外发生,因为它可以始终处于“活动状态”。Angular 项目仅在您将其加载到浏览器中时才执行操作,并且在您没有时无法处理该计划的电子邮件它是开放的(除非你可能将它变成 PWA,但如果用 Angular 来实现它仍然会相当复杂)。

在服务器上进行所有处理,包括生成图表并将其呈现为您通过 SMTP 或通过 Mailgun 或 Sendgrid 等服务发送的电子邮件。