The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/lib/server/startup/settingsOnLoadDirectReply.js

73 lines
2.7 KiB

import { Meteor } from 'meteor/meteor';
import { Logger } from '../../../logger/server';
import { settings } from '../../../settings/server';
import { IMAPIntercepter, POP3Helper, POP3 } from '../lib/interceptDirectReplyEmails.js';
const logger = new Logger('Email Intercepter');
let IMAP;
let _POP3Helper;
settings.watchMultiple(['Direct_Reply_Enable', 'Direct_Reply_Protocol', 'Direct_Reply_Host', 'Direct_Reply_Port', 'Direct_Reply_Username', 'Direct_Reply_Password', 'Direct_Reply_Protocol', 'Direct_Reply_Protocol'], function() {
logger.debug('Starting Email Intercepter...');
if (settings.get('Direct_Reply_Enable') && settings.get('Direct_Reply_Protocol') && settings.get('Direct_Reply_Host') && settings.get('Direct_Reply_Port') && settings.get('Direct_Reply_Username') && settings.get('Direct_Reply_Password')) {
if (settings.get('Direct_Reply_Protocol') === 'IMAP') {
// stop already running IMAP instance
if (IMAP && IMAP.isActive()) {
logger.debug('Disconnecting already running IMAP instance...');
IMAP.stop(Meteor.bindEnvironment(function() {
logger.debug('Starting new IMAP instance......');
IMAP = new IMAPIntercepter();
IMAP.start();
return true;
}));
} else if (POP3 && _POP3Helper && _POP3Helper.isActive()) {
logger.debug('Disconnecting already running POP instance...');
_POP3Helper.stop(Meteor.bindEnvironment(function() {
logger.debug('Starting new IMAP instance......');
IMAP = new IMAPIntercepter();
IMAP.start();
return true;
}));
} else {
logger.debug('Starting new IMAP instance......');
IMAP = new IMAPIntercepter();
IMAP.start();
return true;
}
} else if (settings.get('Direct_Reply_Protocol') === 'POP') {
// stop already running POP instance
if (POP3 && _POP3Helper && _POP3Helper.isActive()) {
logger.debug('Disconnecting already running POP instance...');
_POP3Helper.stop(Meteor.bindEnvironment(function() {
logger.debug('Starting new POP instance......');
_POP3Helper = new POP3Helper();
_POP3Helper.start();
return true;
}));
} else if (IMAP && IMAP.isActive()) {
logger.debug('Disconnecting already running IMAP instance...');
IMAP.stop(Meteor.bindEnvironment(function() {
logger.debug('Starting new POP instance......');
_POP3Helper = new POP3Helper();
_POP3Helper.start();
return true;
}));
} else {
logger.debug('Starting new POP instance......');
_POP3Helper = new POP3Helper();
_POP3Helper.start();
return true;
}
}
} else if (IMAP && IMAP.isActive()) {
// stop IMAP instance
IMAP.stop();
} else if (POP3 && _POP3Helper.isActive()) {
// stop POP3 instance
_POP3Helper.stop();
}
});