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