我正在尝试根据users
表中保存的时区制作一个在特定时间发送电子邮件的脚本。
我有两张桌子:
users -> id, firstname, lastname, email, ... , timezone (VARCHAR; America/New_York, Europe/Berlin, ...)
settings -> id, user_id, email_daily_events (TIME), email_daily_task (TIME)
我想根据用户时区的时间从settings
表中检索所有字段。
在settings.email_daily_events
和settings.email_daily_task
中存储应发送邮件的时间。该脚本每分钟都以cron执行。
当脚本检索某些字段时,它会将一些其他数据发送到用户的电子邮件地址。
整个CMS在NodeJS和Sequelize上运行。
我真的不知道该怎么做,任何想法都会非常感激......
答案 0 :(得分:1)
node-cron
var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
nodemailer
Simple example : sending a text/html email using node
timezone
使用IANA时区数据库在JavaScript中格式化时间。
var tz = require('timezone/loaded'),
equal = require('assert').equal,
utc;
// Get POSIX time in UTC.
utc = tz('2012-01-01');
// Convert UTC time to local time in a localize language.
equal(tz(utc, '%c', 'fr_FR', 'America/Montreal'),
'sam. 31 déc. 2011 19:00:00 EST');
node-cron
与mysql
的组合,每分钟执行一次查询,然后使用nodemailer
发送电子邮件。
timezone
可能派上用场......