diff --git a/config/default.toml b/config/default.toml index 3c6f8af8..ed9f1143 100644 --- a/config/default.toml +++ b/config/default.toml @@ -32,8 +32,7 @@ user="mailtrain" password="mailtrain" database="mailtrain" charset="utf8mb4" -# enter path for mysql command line application -command="mysql" +timezone="UTC" [redis] # enable to use Redis session cache or disable if Redis is not installed diff --git a/services/sender.js b/services/sender.js index 0dd18a7a..c51a04ef 100644 --- a/services/sender.js +++ b/services/sender.js @@ -52,6 +52,11 @@ function findUnsent(callback) { } let tryNext = () => { + + // TODO: Add support for localized sending time. In this case campaign messages are + // not sent before receiver's local time reaches defined time + // SELECT * FROM subscription__1 LEFT JOIN tzoffset ON tzoffset.tz=subscription__1.tz WHERE NOW() + INTERVAL IFNULL(`offset`,0) MINUTE >= localtime + let query = 'SELECT * FROM `subscription__' + campaign.list + '` subscription WHERE status=1 ' + (queryData.where ? ' AND (' + queryData.where + ')' : '') + ' AND NOT EXISTS (SELECT 1 FROM `campaign__' + campaign.id + '` campaign WHERE campaign.list = ? AND campaign.segment = ? AND campaign.subscription = subscription.id) LIMIT 1'; connection.query(query, queryData.values.concat([campaign.list, campaign.segment]), (err, rows) => {