mirror of
https://github.com/nodemailer/wildduck.git
synced 2025-03-03 11:23:11 +08:00
u
This commit is contained in:
parent
7e11e991e0
commit
7ed4362ff9
1 changed files with 10 additions and 0 deletions
|
@ -5,6 +5,7 @@ const MessageSplitter = require('./message-splitter');
|
|||
const db = require('./db');
|
||||
const consts = require('./consts');
|
||||
const maildrop = require('./maildrop');
|
||||
const log = require('npmlog');
|
||||
|
||||
module.exports = (options, callback) => {
|
||||
if (!options.sender || /mailer-daemon|no-?reply/gi.test(options.sender)) {
|
||||
|
@ -15,6 +16,7 @@ module.exports = (options, callback) => {
|
|||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
log.info('ggg', JSON.stringify(autoreply));
|
||||
if (!autoreply || !autoreply.status) {
|
||||
return callback(null, false);
|
||||
}
|
||||
|
@ -32,19 +34,23 @@ module.exports = (options, callback) => {
|
|||
|
||||
let autoSubmitted = headers.getFirst('Auto-Submitted');
|
||||
if (autoSubmitted && autoSubmitted.toLowerCase() !== 'no') {
|
||||
log.info('ggg', 1, autoSubmitted);
|
||||
// skip automatic messages
|
||||
return callback(null, false);
|
||||
}
|
||||
let precedence = headers.getFirst('Precedence');
|
||||
if (precedence && ['list', 'junk', 'bulk'].includes(precedence.toLowerCase())) {
|
||||
log.info('ggg', 2, precedence);
|
||||
return callback(null, false);
|
||||
}
|
||||
let listUnsubscribe = headers.getFirst('List-Unsubscribe');
|
||||
if (listUnsubscribe) {
|
||||
log.info('ggg', 3, listUnsubscribe);
|
||||
return callback(null, false);
|
||||
}
|
||||
let suppressAutoresponse = headers.getFirst('X-Auto-Response-Suppress');
|
||||
if (suppressAutoresponse && /OOF|AutoReply/i.test(suppressAutoresponse)) {
|
||||
log.info('ggg', 4, suppressAutoresponse);
|
||||
return callback(null, false);
|
||||
}
|
||||
|
||||
|
@ -56,17 +62,20 @@ module.exports = (options, callback) => {
|
|||
.zadd('war:' + options.user._id, 'NX', Date.now(), options.sender)
|
||||
.exec((err, response) => {
|
||||
if (err) {
|
||||
log.info('ggg', 5, err.message);
|
||||
return callback(null, false);
|
||||
}
|
||||
|
||||
if (!response || !response[1]) {
|
||||
// already responded
|
||||
log.info('ggg', 6, response);
|
||||
return callback(null, false);
|
||||
}
|
||||
|
||||
// check limiting counters
|
||||
options.messageHandler.counters.ttlcounter('wda:' + options.user._id, 1, consts.MAX_AUTOREPLIES, (err, result) => {
|
||||
if (err || !result.success) {
|
||||
log.info('ggg', 7, (err && err.message) || result);
|
||||
return callback(null, false);
|
||||
}
|
||||
|
||||
|
@ -94,6 +103,7 @@ module.exports = (options, callback) => {
|
|||
text: autoreply.message
|
||||
};
|
||||
|
||||
log.info('ggg', 8, JSON.stringify(data));
|
||||
let compiler = new MailComposer(data);
|
||||
let message = maildrop(
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue