b8cc5cbf475685a282fd110564208090dfa16daa
[motion2.git] / server / services / email / lib / imap.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x3b1b=['hasOwnProperty','upperFirst','exports','path','util','imap','randomstring','mailparser','iconv','Iconv','events','EventEmitter','../../../config/logger','mailbox','INBOX','account','getAccount','once','bind','end','handleEnd','error','handleError','connect','inherits','prototype','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','email','anonymous@xcally.com','handleReady','handleOpenBox','emit','box','readUnseen','search','UNSEEN','handleReadUnseen','length','message','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','handleCloseBox','attributes','handleMessageEnd','handleMessageBody','handleSimpleParser','parser','stringify','textCode'];(function(_0x30a5ef,_0x4c57e7){var _0xecf35d=function(_0x4d13da){while(--_0x4d13da){_0x30a5ef['push'](_0x30a5ef['shift']());}};_0xecf35d(++_0x4c57e7);}(_0x3b1b,0x139));var _0xb3b1=function(_0x5810ac,_0x402ef1){_0x5810ac=_0x5810ac-0x0;var _0x9bfec5=_0x3b1b[_0x5810ac];return _0x9bfec5;};'use strict';var fs=require('fs');var path=require(_0xb3b1('0x0'));var util=require(_0xb3b1('0x1'));var Imap=require(_0xb3b1('0x2'));var _=require('lodash');var rs=require(_0xb3b1('0x3'));var simpleParser=require(_0xb3b1('0x4'))['simpleParser'];var Iconv=require(_0xb3b1('0x5'))[_0xb3b1('0x6')];var EventEmitter=require(_0xb3b1('0x7'))[_0xb3b1('0x8')];var utils=require('./utils');var logger=require(_0xb3b1('0x9'))('email');function EmailImap(_0x28ebe5,_0x34d66d){this[_0xb3b1('0xa')]=_0xb3b1('0xb');this[_0xb3b1('0xc')]=this[_0xb3b1('0xd')](_0x28ebe5,_0x34d66d);this[_0xb3b1('0x2')]=new Imap(this[_0xb3b1('0xc')]);this[_0xb3b1('0x2')][_0xb3b1('0xe')]('ready',this['handleReady'][_0xb3b1('0xf')](this));this['imap'][_0xb3b1('0xe')](_0xb3b1('0x10'),this[_0xb3b1('0x11')][_0xb3b1('0xf')](this));this[_0xb3b1('0x2')]['on'](_0xb3b1('0x12'),this[_0xb3b1('0x13')][_0xb3b1('0xf')](this));this[_0xb3b1('0x2')][_0xb3b1('0x14')]();}util[_0xb3b1('0x15')](EmailImap,EventEmitter);EmailImap[_0xb3b1('0x16')][_0xb3b1('0xd')]=function(_0x3950db,_0x3be814){var _0x39bfcd={'connTimeout':_0x3950db['connTimeout']?_0x3950db['connTimeout']*0x3e8:0x2710,'authTimeout':_0x3950db[_0xb3b1('0x17')]?_0x3950db['authTimeout']*0x3e8:0x1388};if(_[_0xb3b1('0x18')](_0x3950db[_0xb3b1('0x19')])){if(_0x3950db[_0xb3b1('0x1a')]){_0x39bfcd['user']=_0x3950db[_0xb3b1('0x1b')];_0x39bfcd[_0xb3b1('0x1c')]=_0x3950db['password'];}_0x39bfcd[_0xb3b1('0x1d')]=_0x3950db[_0xb3b1('0x1d')];_0x39bfcd['port']=_0x3950db[_0xb3b1('0x1e')]||0x3e1;if(_0x3950db[_0xb3b1('0x1f')]){_0x39bfcd[_0xb3b1('0x1f')]=!![];}else{_0x39bfcd[_0xb3b1('0x1f')]=![];_0x39bfcd[_0xb3b1('0x20')]=_0xb3b1('0x21');}}else{_0x39bfcd[_0xb3b1('0x1b')]=_0x3950db[_0xb3b1('0x1b')];_0x39bfcd[_0xb3b1('0x1c')]=_0x3950db[_0xb3b1('0x1c')];_0x39bfcd[_0xb3b1('0x1d')]=utils[_0xb3b1('0x22')](_0x3950db[_0xb3b1('0x19')]);_0x39bfcd[_0xb3b1('0x1e')]=0x3e1;_0x39bfcd[_0xb3b1('0x1f')]=!![];}_0x39bfcd[_0xb3b1('0x23')]=_0x3be814||_0x3950db[_0xb3b1('0x1b')]||_0xb3b1('0x24');return _0x39bfcd;};EmailImap[_0xb3b1('0x16')][_0xb3b1('0x25')]=function(){this[_0xb3b1('0x2')]['openBox'](this[_0xb3b1('0xa')],![],this['handleOpenBox'][_0xb3b1('0xf')](this));};EmailImap[_0xb3b1('0x16')][_0xb3b1('0x26')]=function(_0x232707,_0x520f6e){if(_0x232707){this[_0xb3b1('0x13')](_0x232707,!![]);}else{this[_0xb3b1('0x27')](_0xb3b1('0x28'),_0x520f6e);this[_0xb3b1('0x29')]();}};EmailImap[_0xb3b1('0x16')]['handleCloseBox']=function(_0x2247c8){if(_0x2247c8){this[_0xb3b1('0x13')](_0x2247c8,!![]);}else{this[_0xb3b1('0x2')][_0xb3b1('0x10')]();}};EmailImap['prototype'][_0xb3b1('0x29')]=function(){this['imap'][_0xb3b1('0x2a')]([_0xb3b1('0x2b')],this[_0xb3b1('0x2c')][_0xb3b1('0xf')](this));};EmailImap['prototype'][_0xb3b1('0x2c')]=function(_0xa9e2fa,_0x46ef16){if(_0xa9e2fa){this[_0xb3b1('0x13')](_0xa9e2fa,!![]);}else{if(_0x46ef16[_0xb3b1('0x2d')]){try{var _0x33b523=this['imap']['fetch'](_0x46ef16,{'bodies':'','markSeen':!![]});_0x33b523['on'](_0xb3b1('0x2e'),this[_0xb3b1('0x2f')]['bind'](this));_0x33b523[_0xb3b1('0xe')](_0xb3b1('0x12'),this[_0xb3b1('0x30')][_0xb3b1('0xf')](this));_0x33b523[_0xb3b1('0xe')](_0xb3b1('0x10'),this[_0xb3b1('0x31')][_0xb3b1('0xf')](this));}catch(_0xe08c8b){logger[_0xb3b1('0x12')](_0xe08c8b);}}else{this[_0xb3b1('0x2')][_0xb3b1('0x32')](!![],this[_0xb3b1('0x33')][_0xb3b1('0xf')](this));}}};EmailImap['prototype'][_0xb3b1('0x2f')]=function(_0x1d43e7,_0x3af7a0){_0x1d43e7['on']('body',this['handleMessageBody']['bind'](this));_0x1d43e7[_0xb3b1('0xe')](_0xb3b1('0x34'),this['handleMessageAttributes']['bind'](this));_0x1d43e7[_0xb3b1('0xe')](_0xb3b1('0x10'),this[_0xb3b1('0x35')][_0xb3b1('0xf')](this));};EmailImap[_0xb3b1('0x16')][_0xb3b1('0x36')]=function(_0x3e4d37,_0x443bd6){simpleParser(_0x3e4d37,{'Iconv':Iconv},this[_0xb3b1('0x37')]['bind'](this));};EmailImap[_0xb3b1('0x16')]['handleMessageAttributes']=function(_0x3834cb){};EmailImap[_0xb3b1('0x16')][_0xb3b1('0x35')]=function(){};EmailImap[_0xb3b1('0x16')]['handleSimpleParser']=function(_0x41e5d1,_0x35ab71){if(_0x41e5d1){logger[_0xb3b1('0x12')](_0x41e5d1);}else{var _0x2b1f55=this;utils[_0xb3b1('0x38')](this[_0xb3b1('0xc')],_0x35ab71,function(_0x144e3e){_0x2b1f55[_0xb3b1('0x27')](_0xb3b1('0x23'),_0x144e3e);});}};EmailImap[_0xb3b1('0x16')][_0xb3b1('0x31')]=function(){this['imap']['closeBox'](!![],this[_0xb3b1('0x33')][_0xb3b1('0xf')](this));};EmailImap['prototype'][_0xb3b1('0x30')]=function(_0x594904){this[_0xb3b1('0x13')](_0x594904);this[_0xb3b1('0x2')][_0xb3b1('0x32')](!![],this[_0xb3b1('0x33')][_0xb3b1('0xf')](this));};EmailImap[_0xb3b1('0x16')][_0xb3b1('0x11')]=function(){this[_0xb3b1('0x27')](_0xb3b1('0x10'));};EmailImap['prototype'][_0xb3b1('0x13')]=function(_0x21d93e,_0x537fe6){logger[_0xb3b1('0x12')]('handleError',this[_0xb3b1('0xc')][_0xb3b1('0x23')],JSON[_0xb3b1('0x39')](_0x21d93e));var _0x39988b='';if(_0x21d93e){if(_0x21d93e[_0xb3b1('0x3a')]){_0x39988b=_0x21d93e['textCode'];}else{for(var _0x616875 in _0x21d93e){if(_0x21d93e[_0xb3b1('0x3b')](_0x616875)){_0x39988b+=_[_0xb3b1('0x3c')](_0x616875)+':\x20'+_0x21d93e[_0x616875]+'\x0a';}}}}if(_0x537fe6){this[_0xb3b1('0x2')][_0xb3b1('0x10')]();}else{this[_0xb3b1('0x27')]('error',_0x39988b);this[_0xb3b1('0x27')]('end');}};module[_0xb3b1('0x3d')]=EmailImap;