6c09a5beff03f03438404afc8aa5df1b9aec27e8
[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 _0x1862=['account','getAccount','once','ready','handleReady','bind','end','handleEnd','error','handleError','connect','prototype','connTimeout','authTimeout','isNil','service','user','password','host','port','tls','autotls','required','getHost','anonymous@xcally.com','openBox','handleOpenBox','emit','box','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','message','handleFetchMessage','body','handleMessageBody','handleMessageAttributes','handleMessageEnd','handleSimpleParser','handleFetchEnd','handleFetchError','closeBox','textCode','upperFirst','exports','path','util','imap','lodash','randomstring','mailparser','simpleParser','Iconv','events','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX'];(function(_0x41cc41,_0x4af08b){var _0x5fce79=function(_0x54040e){while(--_0x54040e){_0x41cc41['push'](_0x41cc41['shift']());}};_0x5fce79(++_0x4af08b);}(_0x1862,0x12c));var _0x2186=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1862[_0x3dd15e];return _0x231fd0;};'use strict';var fs=require('fs');var path=require(_0x2186('0x0'));var util=require(_0x2186('0x1'));var Imap=require(_0x2186('0x2'));var _=require(_0x2186('0x3'));var rs=require(_0x2186('0x4'));var simpleParser=require(_0x2186('0x5'))[_0x2186('0x6')];var Iconv=require('iconv')[_0x2186('0x7')];var EventEmitter=require(_0x2186('0x8'))[_0x2186('0x9')];var utils=require(_0x2186('0xa'));var logger=require(_0x2186('0xb'))(_0x2186('0xc'));function EmailImap(_0x210f5a,_0x5af8a6){this[_0x2186('0xd')]=_0x2186('0xe');this[_0x2186('0xf')]=this[_0x2186('0x10')](_0x210f5a,_0x5af8a6);this[_0x2186('0x2')]=new Imap(this['account']);this['imap'][_0x2186('0x11')](_0x2186('0x12'),this[_0x2186('0x13')][_0x2186('0x14')](this));this['imap']['once'](_0x2186('0x15'),this[_0x2186('0x16')][_0x2186('0x14')](this));this[_0x2186('0x2')]['on'](_0x2186('0x17'),this[_0x2186('0x18')]['bind'](this));this[_0x2186('0x2')][_0x2186('0x19')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x2186('0x1a')][_0x2186('0x10')]=function(_0x3fb01d,_0x3bf1c8){var _0x49ed07={'connTimeout':_0x3fb01d[_0x2186('0x1b')]?_0x3fb01d[_0x2186('0x1b')]*0x3e8:0x2710,'authTimeout':_0x3fb01d['authTimeout']?_0x3fb01d[_0x2186('0x1c')]*0x3e8:0x1388};if(_[_0x2186('0x1d')](_0x3fb01d[_0x2186('0x1e')])){if(_0x3fb01d['authentication']){_0x49ed07[_0x2186('0x1f')]=_0x3fb01d['user'];_0x49ed07[_0x2186('0x20')]=_0x3fb01d[_0x2186('0x20')];}_0x49ed07[_0x2186('0x21')]=_0x3fb01d[_0x2186('0x21')];_0x49ed07[_0x2186('0x22')]=_0x3fb01d['port']||0x3e1;if(_0x3fb01d[_0x2186('0x23')]){_0x49ed07[_0x2186('0x23')]=!![];}else{_0x49ed07[_0x2186('0x23')]=![];_0x49ed07[_0x2186('0x24')]=_0x2186('0x25');}}else{_0x49ed07[_0x2186('0x1f')]=_0x3fb01d[_0x2186('0x1f')];_0x49ed07[_0x2186('0x20')]=_0x3fb01d[_0x2186('0x20')];_0x49ed07[_0x2186('0x21')]=utils[_0x2186('0x26')](_0x3fb01d[_0x2186('0x1e')]);_0x49ed07['port']=0x3e1;_0x49ed07[_0x2186('0x23')]=!![];}_0x49ed07[_0x2186('0xc')]=_0x3bf1c8||_0x3fb01d[_0x2186('0x1f')]||_0x2186('0x27');return _0x49ed07;};EmailImap[_0x2186('0x1a')][_0x2186('0x13')]=function(){this[_0x2186('0x2')][_0x2186('0x28')](this[_0x2186('0xd')],![],this[_0x2186('0x29')][_0x2186('0x14')](this));};EmailImap['prototype'][_0x2186('0x29')]=function(_0x269a70,_0x41014a){if(_0x269a70){this[_0x2186('0x18')](_0x269a70,!![]);}else{this[_0x2186('0x2a')](_0x2186('0x2b'),_0x41014a);this[_0x2186('0x2c')]();}};EmailImap['prototype'][_0x2186('0x2d')]=function(_0x4f62cd){if(_0x4f62cd){this[_0x2186('0x18')](_0x4f62cd,!![]);}else{this['imap'][_0x2186('0x15')]();}};EmailImap[_0x2186('0x1a')][_0x2186('0x2c')]=function(){this[_0x2186('0x2')][_0x2186('0x2e')]([_0x2186('0x2f')],this[_0x2186('0x30')]['bind'](this));};EmailImap[_0x2186('0x1a')][_0x2186('0x30')]=function(_0x427a81,_0x3d2222){if(_0x427a81){this['handleError'](_0x427a81,!![]);}else{if(_0x3d2222[_0x2186('0x31')]){try{var _0x2f7210=this['imap']['fetch'](_0x3d2222,{'bodies':'','markSeen':!![]});_0x2f7210['on'](_0x2186('0x32'),this[_0x2186('0x33')][_0x2186('0x14')](this));_0x2f7210['once'](_0x2186('0x17'),this['handleFetchError'][_0x2186('0x14')](this));_0x2f7210[_0x2186('0x11')](_0x2186('0x15'),this['handleFetchEnd'][_0x2186('0x14')](this));}catch(_0x1b401b){logger[_0x2186('0x17')](_0x1b401b);}}else{this[_0x2186('0x2')]['closeBox'](!![],this['handleCloseBox'][_0x2186('0x14')](this));}}};EmailImap[_0x2186('0x1a')][_0x2186('0x33')]=function(_0x301c1c,_0x5816bf){_0x301c1c['on'](_0x2186('0x34'),this[_0x2186('0x35')][_0x2186('0x14')](this));_0x301c1c['once']('attributes',this[_0x2186('0x36')]['bind'](this));_0x301c1c['once'](_0x2186('0x15'),this[_0x2186('0x37')][_0x2186('0x14')](this));};EmailImap[_0x2186('0x1a')][_0x2186('0x35')]=function(_0x174b52,_0x2d99ec){simpleParser(_0x174b52,{'Iconv':Iconv},this[_0x2186('0x38')][_0x2186('0x14')](this));};EmailImap[_0x2186('0x1a')][_0x2186('0x36')]=function(_0x5edec7){};EmailImap[_0x2186('0x1a')][_0x2186('0x37')]=function(){};EmailImap[_0x2186('0x1a')]['handleSimpleParser']=function(_0x2b3ca9,_0x5bb18c){if(_0x2b3ca9){logger[_0x2186('0x17')](_0x2b3ca9);}else{var _0x48f24a=this;utils['parser'](this[_0x2186('0xf')],_0x5bb18c,function(_0x3d4550){_0x48f24a[_0x2186('0x2a')](_0x2186('0xc'),_0x3d4550);});}};EmailImap[_0x2186('0x1a')][_0x2186('0x39')]=function(){this['imap']['closeBox'](!![],this[_0x2186('0x2d')]['bind'](this));};EmailImap[_0x2186('0x1a')][_0x2186('0x3a')]=function(_0x3e0df9){this[_0x2186('0x18')](_0x3e0df9);this[_0x2186('0x2')][_0x2186('0x3b')](!![],this['handleCloseBox'][_0x2186('0x14')](this));};EmailImap[_0x2186('0x1a')][_0x2186('0x16')]=function(){this[_0x2186('0x2a')](_0x2186('0x15'));};EmailImap[_0x2186('0x1a')][_0x2186('0x18')]=function(_0x152de7,_0x19053e){logger[_0x2186('0x17')](_0x2186('0x18'),this[_0x2186('0xf')][_0x2186('0xc')],JSON['stringify'](_0x152de7));var _0x590959='';if(_0x152de7){if(_0x152de7[_0x2186('0x3c')]){_0x590959=_0x152de7[_0x2186('0x3c')];}else{for(var _0x2ef143 in _0x152de7){if(_0x152de7['hasOwnProperty'](_0x2ef143)){_0x590959+=_[_0x2186('0x3d')](_0x2ef143)+':\x20'+_0x152de7[_0x2ef143]+'\x0a';}}}}if(_0x19053e){this[_0x2186('0x2')][_0x2186('0x15')]();}else{this[_0x2186('0x2a')]('error',_0x590959);this[_0x2186('0x2a')](_0x2186('0x15'));}};module[_0x2186('0x3e')]=EmailImap;