Reload mailer config once admin updates Mailtrain settings
This commit is contained in:
parent
9946f70992
commit
50f6c8d101
6 changed files with 27 additions and 11 deletions
3
index.js
3
index.js
|
@ -17,6 +17,7 @@ let postfixBounceServer = require('./services/postfix-bounce-server');
|
|||
let tzupdate = require('./services/tzupdate');
|
||||
let feedcheck = require('./services/feedcheck');
|
||||
let dbcheck = require('./lib/dbcheck');
|
||||
let tools = require('./lib/tools');
|
||||
|
||||
let port = config.www.port;
|
||||
let host = config.www.host;
|
||||
|
@ -88,9 +89,11 @@ function spawnSenders(callback) {
|
|||
|
||||
let child = fork(__dirname + '/services/sender.js', []);
|
||||
let pid = child.pid;
|
||||
tools.workers.add(child);
|
||||
|
||||
child.on('close', (code, signal) => {
|
||||
spawned--;
|
||||
tools.workers.delete(child);
|
||||
log.error('Child', 'Sender process %s exited with %s', pid, code || signal);
|
||||
// Respawn after 5 seconds
|
||||
setTimeout(() => spawnSender(), 5 * 1000).unref();
|
||||
|
|
|
@ -19,7 +19,8 @@ module.exports = {
|
|||
validateEmail,
|
||||
formatMessage,
|
||||
getMessageLinks,
|
||||
prepareHtml
|
||||
prepareHtml,
|
||||
workers: new Set()
|
||||
};
|
||||
|
||||
function toDbKey(key) {
|
||||
|
|
16
package.json
16
package.json
|
@ -35,7 +35,7 @@
|
|||
"compression": "^1.6.2",
|
||||
"config": "^1.24.0",
|
||||
"connect-flash": "^0.1.1",
|
||||
"connect-redis": "^3.1.0",
|
||||
"connect-redis": "^3.2.0",
|
||||
"cookie-parser": "^1.4.3",
|
||||
"csurf": "^1.9.0",
|
||||
"csv-generate": "^1.0.0",
|
||||
|
@ -49,21 +49,21 @@
|
|||
"handlebars": "^4.0.6",
|
||||
"hbs": "^4.0.1",
|
||||
"he": "^1.1.0",
|
||||
"html-to-text": "^2.1.3",
|
||||
"html-to-text": "^3.0.0",
|
||||
"humanize": "0.0.9",
|
||||
"is-url": "^1.2.2",
|
||||
"isemail": "^2.2.1",
|
||||
"jsdom": "^9.8.3",
|
||||
"jsdom": "^9.9.1",
|
||||
"juice": "^4.0.2",
|
||||
"libmime": "^3.0.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"moment-timezone": "^0.5.10",
|
||||
"moment-timezone": "^0.5.11",
|
||||
"morgan": "^1.7.0",
|
||||
"multer": "^1.2.0",
|
||||
"multer": "^1.2.1",
|
||||
"mysql": "^2.12.0",
|
||||
"nodemailer": "^2.7.0",
|
||||
"nodemailer-openpgp": "^1.0.2",
|
||||
"npmlog": "^4.0.1",
|
||||
"npmlog": "^4.0.2",
|
||||
"openpgp": "^2.3.5",
|
||||
"passport": "^0.3.2",
|
||||
"passport-local": "^1.0.0",
|
||||
|
@ -73,8 +73,8 @@
|
|||
"serve-favicon": "^2.3.2",
|
||||
"shortid": "^2.2.6",
|
||||
"slugify": "^1.0.2",
|
||||
"smtp-server": "^1.16.1",
|
||||
"smtp-server": "^1.17.0",
|
||||
"striptags": "^2.1.1",
|
||||
"toml": "^2.3.0"
|
||||
"toml": "^2.3.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,6 +87,11 @@ router.post('/update', passport.parseForm, passport.csrfProtection, (req, res) =
|
|||
let storeSettings = () => {
|
||||
if (i >= keys.length) {
|
||||
mailer.update();
|
||||
tools.workers.forEach(worker => {
|
||||
worker.send({
|
||||
reload: true
|
||||
});
|
||||
});
|
||||
req.flash('success', 'Settings updated');
|
||||
return res.redirect('/settings');
|
||||
}
|
||||
|
|
|
@ -544,3 +544,10 @@ let sendLoop = () => {
|
|||
};
|
||||
|
||||
sendLoop();
|
||||
|
||||
process.on('message', m => {
|
||||
if (m && m.reload) {
|
||||
log.info('Sender/' + process.pid, 'Reloading mailer config');
|
||||
mailer.update();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -173,14 +173,14 @@
|
|||
<div class="form-group">
|
||||
<label for="smtp-user" class="col-sm-2 control-label">Username</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" name="smtp-user" id="smtp-port" placeholder="Username, eg. myaccount@example.com" value="{{smtpUser}}" required>
|
||||
<input type="text" class="form-control" name="smtp-user" id="smtp-port" placeholder="Username, eg. myaccount@example.com" value="{{smtpUser}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="smtp-pass" class="col-sm-2 control-label">Password</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="smtp-pass" id="smtp-pass" placeholder="Password" value="{{smtpPass}}" required>
|
||||
<input type="password" class="form-control" name="smtp-pass" id="smtp-pass" placeholder="Password" value="{{smtpPass}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue