This commit is contained in:
Andris Reinman 2016-05-26 12:53:12 +03:00
parent 773977dd96
commit 8546040e97
6 changed files with 38 additions and 19 deletions

View file

@ -6,6 +6,7 @@ let nodemailer = require('nodemailer');
let openpgpEncrypt = require('nodemailer-openpgp').openpgpEncrypt;
let settings = require('./models/settings');
let tools = require('./tools');
let caches = require('./caches');
let Handlebars = require('handlebars');
let fs = require('fs');
let path = require('path');
@ -102,6 +103,14 @@ function createMailer(callback) {
if (err) {
return callback(err);
}
let oldListeners = [];
if (module.exports.transport) {
oldListeners = module.exports.transport.listeners('idle');
module.exports.transport.removeAllListeners('idle');
module.exports.transport.removeAllListeners('stream');
}
module.exports.transport = nodemailer.createTransport({
pool: true,
host: configItems.smtpHostname,
@ -114,9 +123,9 @@ function createMailer(callback) {
},
debug: !!configItems.smtpLog,
logger: !configItems.smtpLog ? false : {
debug: log.info.bind(log, 'Mail'),
info: log.verbose.bind(log, 'Mail'),
error: log.info.bind(log, 'Mail')
debug: log.verbose.bind(log, 'Mail'),
info: log.info.bind(log, 'Mail'),
error: log.error.bind(log, 'Mail')
},
maxConnections: Number(configItems.smtpMaxConnections),
maxMessages: Number(configItems.smtpMaxMessages),
@ -129,6 +138,12 @@ function createMailer(callback) {
passphrase: configItems.pgpPassphrase
}));
if (oldListeners.length) {
log.info('Mail', 'Reattaching %s idle listeners', oldListeners.length);
oldListeners.forEach(listener => module.exports.transport.on('idle', listener));
}
caches.cache.delete('sender queue');
return callback(null, module.exports.transport);
});
}

View file

@ -745,6 +745,8 @@ module.exports.delete = (id, callback) => {
if (err) {
return callback(err);
}
caches.cache.delete('sender queue');
return callback(null, affected);
});
});