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.5 KiB

import { Meteor } from 'meteor/meteor';
import _ from 'underscore';
import { settings } from '../../../settings';
import { IMAPIntercepter, POP3Helper, POP3 } from '../lib/interceptDirectReplyEmails.js';
let IMAP;
let _POP3Helper;
const startEmailIntercepter = _.debounce(Meteor.bindEnvironment(function() {
console.log('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()) {
console.log('Disconnecting already running IMAP instance...');
IMAP.stop(Meteor.bindEnvironment(function() {
console.log('Starting new IMAP instance......');
IMAP = new IMAPIntercepter();
IMAP.start();
return true;
}));
} else if (POP3 && _POP3Helper && _POP3Helper.isActive()) {
console.log('Disconnecting already running POP instance...');
_POP3Helper.stop(Meteor.bindEnvironment(function() {
console.log('Starting new IMAP instance......');
IMAP = new IMAPIntercepter();
IMAP.start();
return true;
}));
} else {
console.log('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()) {
console.log('Disconnecting already running POP instance...');
_POP3Helper.stop(Meteor.bindEnvironment(function() {
console.log('Starting new POP instance......');
_POP3Helper = new POP3Helper();
_POP3Helper.start();
return true;
}));
} else if (IMAP && IMAP.isActive()) {
console.log('Disconnecting already running IMAP instance...');
IMAP.stop(Meteor.bindEnvironment(function() {
console.log('Starting new POP instance......');
_POP3Helper = new POP3Helper();
_POP3Helper.start();
return true;
}));
} else {
console.log('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();
}
}), 1000);
settings.onload(/^Direct_Reply_.+/, startEmailIntercepter);