Built motion from commit 1fa89557.|2.6.10
[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 _0x1950=['handleOpenBox','box','readUnseen','search','UNSEEN','handleReadUnseen','length','fetch','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','handleCloseBox','body','handleMessageBody','handleSimpleParser','handleMessageAttributes','handleMessageEnd','parser','emit','stringify','hasOwnProperty','upperFirst','exports','lodash','util','imap','mailparser','simpleParser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','email','mailbox','account','getAccount','once','ready','handleReady','bind','end','handleEnd','error','handleError','connect','inherits','prototype','connTimeout','authTimeout','service','user','modernAuthentication','xoauth2','generateXOAuth2Token','CloudProvider','data5','password','authentication','anonymous@xcally.com','host','port','tls','required'];(function(_0x2e53e1,_0x12aed1){var _0x3a23de=function(_0xd84699){while(--_0xd84699){_0x2e53e1['push'](_0x2e53e1['shift']());}};_0x3a23de(++_0x12aed1);}(_0x1950,0xdb));var _0x0195=function(_0x402806,_0x30a726){_0x402806=_0x402806-0x0;var _0x57bbb5=_0x1950[_0x402806];return _0x57bbb5;};'use strict';var _=require(_0x0195('0x0'));var util=require(_0x0195('0x1'));var Imap=require(_0x0195('0x2'));var simpleParser=require(_0x0195('0x3'))[_0x0195('0x4')];var Iconv=require(_0x0195('0x5'))[_0x0195('0x6')];var EventEmitter=require('events')[_0x0195('0x7')];var utils=require(_0x0195('0x8'));var logger=require(_0x0195('0x9'))(_0x0195('0xa'));function EmailImap(_0x1ff9ca,_0x2a0b5c){this[_0x0195('0xb')]=_0x1ff9ca[_0x0195('0xb')];this[_0x0195('0xc')]=this[_0x0195('0xd')](_0x1ff9ca,_0x2a0b5c);this['imap']=new Imap(this[_0x0195('0xc')]);this[_0x0195('0x2')][_0x0195('0xe')](_0x0195('0xf'),this[_0x0195('0x10')][_0x0195('0x11')](this));this[_0x0195('0x2')][_0x0195('0xe')](_0x0195('0x12'),this[_0x0195('0x13')][_0x0195('0x11')](this));this['imap']['on'](_0x0195('0x14'),this[_0x0195('0x15')]['bind'](this));this[_0x0195('0x2')][_0x0195('0x16')]();}util[_0x0195('0x17')](EmailImap,EventEmitter);EmailImap[_0x0195('0x18')][_0x0195('0xd')]=function(_0x5409cb,_0x39a892){var _0x273ca0={'connTimeout':_0x5409cb[_0x0195('0x19')]?_0x5409cb['connTimeout']*0x3e8:0x2710,'authTimeout':_0x5409cb[_0x0195('0x1a')]?_0x5409cb[_0x0195('0x1a')]*0x3e8:0x1388};if(_0x5409cb[_0x0195('0x1b')]){_0x273ca0['user']=_0x5409cb[_0x0195('0x1c')];if(_0x5409cb[_0x0195('0x1d')]){_0x273ca0[_0x0195('0x1e')]=utils[_0x0195('0x1f')](_0x5409cb[_0x0195('0x20')][_0x0195('0x21')],_0x5409cb[_0x0195('0x1c')]);}else{_0x273ca0[_0x0195('0x22')]=_0x5409cb['password'];}}else{if(_0x5409cb[_0x0195('0x23')]){_0x273ca0[_0x0195('0x1c')]=_0x5409cb[_0x0195('0x1c')];_0x273ca0[_0x0195('0x22')]=_0x5409cb['password'];}}_0x273ca0[_0x0195('0xa')]=_0x39a892||_0x5409cb[_0x0195('0x1c')]||_0x0195('0x24');_0x273ca0[_0x0195('0x25')]=_0x5409cb['host'];_0x273ca0[_0x0195('0x26')]=_0x5409cb[_0x0195('0x26')]||0x3e1;if(_0x5409cb['tls']){_0x273ca0[_0x0195('0x27')]=!![];}else{_0x273ca0[_0x0195('0x27')]=![];_0x273ca0['autotls']=_0x0195('0x28');}return _0x273ca0;};EmailImap['prototype'][_0x0195('0x10')]=function(){this['imap']['openBox'](this[_0x0195('0xb')],![],this[_0x0195('0x29')][_0x0195('0x11')](this));};EmailImap['prototype'][_0x0195('0x29')]=function(_0x52cbe3,_0xbf327c){if(_0x52cbe3){this['handleError'](_0x52cbe3,!![]);}else{this['emit'](_0x0195('0x2a'),_0xbf327c);this[_0x0195('0x2b')]();}};EmailImap[_0x0195('0x18')]['handleCloseBox']=function(_0x471ce3){if(_0x471ce3){this[_0x0195('0x15')](_0x471ce3,!![]);}else{this['imap'][_0x0195('0x12')]();}};EmailImap[_0x0195('0x18')]['readUnseen']=function(){this['imap'][_0x0195('0x2c')]([_0x0195('0x2d')],this[_0x0195('0x2e')][_0x0195('0x11')](this));};EmailImap[_0x0195('0x18')]['handleReadUnseen']=function(_0x3076ac,_0x846fc4){if(_0x3076ac){this[_0x0195('0x15')](_0x3076ac,!![]);}else{if(_0x846fc4[_0x0195('0x2f')]){try{var _0x2f18d3=this['imap'][_0x0195('0x30')](_0x846fc4,{'bodies':'','markSeen':!![]});_0x2f18d3['on']('message',this[_0x0195('0x31')]['bind'](this));_0x2f18d3[_0x0195('0xe')]('error',this[_0x0195('0x32')][_0x0195('0x11')](this));_0x2f18d3[_0x0195('0xe')](_0x0195('0x12'),this[_0x0195('0x33')][_0x0195('0x11')](this));}catch(_0x20b93d){logger[_0x0195('0x14')](_0x20b93d);}}else{this[_0x0195('0x2')][_0x0195('0x34')](!![],this[_0x0195('0x35')][_0x0195('0x11')](this));}}};EmailImap[_0x0195('0x18')][_0x0195('0x31')]=function(_0x5f85dc){_0x5f85dc['on'](_0x0195('0x36'),this['handleMessageBody'][_0x0195('0x11')](this));_0x5f85dc['once']('attributes',this['handleMessageAttributes'][_0x0195('0x11')](this));_0x5f85dc['once'](_0x0195('0x12'),this['handleMessageEnd'][_0x0195('0x11')](this));};EmailImap['prototype'][_0x0195('0x37')]=function(_0x630956){simpleParser(_0x630956,{'Iconv':Iconv},this[_0x0195('0x38')][_0x0195('0x11')](this));};EmailImap[_0x0195('0x18')][_0x0195('0x39')]=function(){};EmailImap[_0x0195('0x18')][_0x0195('0x3a')]=function(){};EmailImap[_0x0195('0x18')][_0x0195('0x38')]=function(_0x580204,_0x4e2872){if(_0x580204){logger[_0x0195('0x14')](_0x580204);}else{var _0x54d360=this;utils[_0x0195('0x3b')](this['account'],_0x4e2872,function(_0xbc3f20){_0x54d360[_0x0195('0x3c')]('email',_0xbc3f20);});}};EmailImap['prototype']['handleFetchEnd']=function(){this[_0x0195('0x2')][_0x0195('0x34')](!![],this['handleCloseBox'][_0x0195('0x11')](this));};EmailImap[_0x0195('0x18')]['handleFetchError']=function(_0x5849df){this[_0x0195('0x15')](_0x5849df);this['imap'][_0x0195('0x34')](!![],this[_0x0195('0x35')][_0x0195('0x11')](this));};EmailImap['prototype'][_0x0195('0x13')]=function(){this[_0x0195('0x3c')](_0x0195('0x12'));};EmailImap['prototype'][_0x0195('0x15')]=function(_0x18c13b,_0x544eb0){logger[_0x0195('0x14')](_0x0195('0x15'),this[_0x0195('0xc')][_0x0195('0xa')],JSON[_0x0195('0x3d')](_0x18c13b));var _0x287a1f='';if(_0x18c13b){if(_0x18c13b['textCode']){_0x287a1f=_0x18c13b['textCode'];}else{for(var _0x258d51 in _0x18c13b){if(_0x18c13b[_0x0195('0x3e')](_0x258d51)){_0x287a1f+=_[_0x0195('0x3f')](_0x258d51)+':\x20'+_0x18c13b[_0x258d51]+'\x0a';}}}}if(_0x544eb0){this['imap']['end']();}else{this[_0x0195('0x3c')]('error',_0x287a1f);this[_0x0195('0x3c')](_0x0195('0x12'));}};module[_0x0195('0x40')]=EmailImap;