Nodemailer отправлять электронную почту после определенной даты? - PullRequest
0 голосов
/ 09 февраля 2019

Я создаю веб-приложение для node.js, mongoose, express и mongodb.Я новичок в кодировании, но я хотел бы использовать nodemailer для отправки электронных писем пользователям.В частности, я хотел бы закодировать форму, которую пользователь может ввести в своей электронной почте + дни, которые важны для него.Я хотел бы использовать nodemailer, чтобы автоматически отправлять им электронные письма за неделю до введенных дат, напоминая им о дате каждого года.Как я должен подходить к этому с помощью JavaScript?Я действительно не знаю, с чего начать.Спасибо!

1 Ответ

0 голосов
/ 09 февраля 2019

Просто чтобы дать один из возможных подходов: я бы использовал задания CRON для реализации этого сценария, в случае NodeJS это означает использование модуля, подобного cron .Служба может быть реализована в виде RESTful API.

Конкретная реализация зависит от требований к производительности и свойств, таких как количество запущенных напоминаний, но одним из основных решений было бы хранение дат внутри MongoDBи перезагрузите его при каждом перезапуске веб-приложения.Затем вы должны создать работу 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();
...