5fd9797384b0b22a9fa54e400afc79d9e1752c10
[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 _0xbdb7=['handleError','connect','connTimeout','authTimeout','service','user','modernAuthentication','xoauth2','CloudProvider','data5','password','authentication','email','anonymous@xcally.com','port','tls','autotls','required','prototype','openBox','handleOpenBox','emit','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','fetch','message','error','handleFetchError','handleFetchEnd','closeBox','body','handleMessageAttributes','handleMessageEnd','handleMessageBody','handleSimpleParser','parser','account','stringify','textCode','hasOwnProperty','upperFirst','exports','lodash','util','imap','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','../../../config/logger','mailbox','getAccount','once','ready','handleReady','bind','end','handleEnd'];(function(_0x44ea17,_0x422059){var _0x1d8af1=function(_0x159a75){while(--_0x159a75){_0x44ea17['push'](_0x44ea17['shift']());}};_0x1d8af1(++_0x422059);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x20dda3,_0xfcb775){_0x20dda3=_0x20dda3-0x0;var _0x547b71=_0xbdb7[_0x20dda3];return _0x547b71;};'use strict';var _=require(_0x7bdb('0x0'));var util=require(_0x7bdb('0x1'));var Imap=require(_0x7bdb('0x2'));var simpleParser=require(_0x7bdb('0x3'))[_0x7bdb('0x4')];var Iconv=require(_0x7bdb('0x5'))[_0x7bdb('0x6')];var EventEmitter=require(_0x7bdb('0x7'))[_0x7bdb('0x8')];var utils=require('./utils');var logger=require(_0x7bdb('0x9'))('email');function EmailImap(_0x4b5fff,_0xffdc86){this[_0x7bdb('0xa')]=_0x4b5fff['mailbox'];this['account']=this[_0x7bdb('0xb')](_0x4b5fff,_0xffdc86);this[_0x7bdb('0x2')]=new Imap(this['account']);this['imap'][_0x7bdb('0xc')](_0x7bdb('0xd'),this[_0x7bdb('0xe')][_0x7bdb('0xf')](this));this[_0x7bdb('0x2')][_0x7bdb('0xc')](_0x7bdb('0x10'),this[_0x7bdb('0x11')]['bind'](this));this['imap']['on']('error',this[_0x7bdb('0x12')][_0x7bdb('0xf')](this));this['imap'][_0x7bdb('0x13')]();}util['inherits'](EmailImap,EventEmitter);EmailImap['prototype'][_0x7bdb('0xb')]=function(_0x46dd4a,_0x4fd91a){var _0x50eeca={'connTimeout':_0x46dd4a['connTimeout']?_0x46dd4a[_0x7bdb('0x14')]*0x3e8:0x2710,'authTimeout':_0x46dd4a[_0x7bdb('0x15')]?_0x46dd4a[_0x7bdb('0x15')]*0x3e8:0x1388};if(_0x46dd4a[_0x7bdb('0x16')]){_0x50eeca[_0x7bdb('0x17')]=_0x46dd4a[_0x7bdb('0x17')];if(_0x46dd4a[_0x7bdb('0x18')]){_0x50eeca[_0x7bdb('0x19')]=utils['generateXOAuth2Token'](_0x46dd4a[_0x7bdb('0x1a')][_0x7bdb('0x1b')],_0x46dd4a[_0x7bdb('0x17')]);}else{_0x50eeca[_0x7bdb('0x1c')]=_0x46dd4a['password'];}}else{if(_0x46dd4a[_0x7bdb('0x1d')]){_0x50eeca[_0x7bdb('0x17')]=_0x46dd4a['user'];_0x50eeca[_0x7bdb('0x1c')]=_0x46dd4a[_0x7bdb('0x1c')];}}_0x50eeca[_0x7bdb('0x1e')]=_0x4fd91a||_0x46dd4a[_0x7bdb('0x17')]||_0x7bdb('0x1f');_0x50eeca['host']=_0x46dd4a['host'];_0x50eeca[_0x7bdb('0x20')]=_0x46dd4a[_0x7bdb('0x20')]||0x3e1;if(_0x46dd4a['tls']){_0x50eeca[_0x7bdb('0x21')]=!![];}else{_0x50eeca[_0x7bdb('0x21')]=![];_0x50eeca[_0x7bdb('0x22')]=_0x7bdb('0x23');}return _0x50eeca;};EmailImap[_0x7bdb('0x24')]['handleReady']=function(){this[_0x7bdb('0x2')][_0x7bdb('0x25')](this[_0x7bdb('0xa')],![],this[_0x7bdb('0x26')]['bind'](this));};EmailImap['prototype'][_0x7bdb('0x26')]=function(_0x5eface,_0x47abaf){if(_0x5eface){this['handleError'](_0x5eface,!![]);}else{this[_0x7bdb('0x27')]('box',_0x47abaf);this[_0x7bdb('0x28')]();}};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x29')]=function(_0x7c09cf){if(_0x7c09cf){this[_0x7bdb('0x12')](_0x7c09cf,!![]);}else{this['imap'][_0x7bdb('0x10')]();}};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x28')]=function(){this[_0x7bdb('0x2')][_0x7bdb('0x2a')]([_0x7bdb('0x2b')],this[_0x7bdb('0x2c')][_0x7bdb('0xf')](this));};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x2c')]=function(_0x9ec48d,_0x81ca6f){if(_0x9ec48d){this['handleError'](_0x9ec48d,!![]);}else{if(_0x81ca6f[_0x7bdb('0x2d')]){try{var _0x23fc3a=this[_0x7bdb('0x2')][_0x7bdb('0x2e')](_0x81ca6f,{'bodies':'','markSeen':!![]});_0x23fc3a['on'](_0x7bdb('0x2f'),this['handleFetchMessage'][_0x7bdb('0xf')](this));_0x23fc3a[_0x7bdb('0xc')](_0x7bdb('0x30'),this[_0x7bdb('0x31')]['bind'](this));_0x23fc3a['once']('end',this[_0x7bdb('0x32')]['bind'](this));}catch(_0x2058e1){logger['error'](_0x2058e1);}}else{this[_0x7bdb('0x2')][_0x7bdb('0x33')](!![],this[_0x7bdb('0x29')]['bind'](this));}}};EmailImap[_0x7bdb('0x24')]['handleFetchMessage']=function(_0x532206){_0x532206['on'](_0x7bdb('0x34'),this['handleMessageBody'][_0x7bdb('0xf')](this));_0x532206['once']('attributes',this[_0x7bdb('0x35')][_0x7bdb('0xf')](this));_0x532206[_0x7bdb('0xc')](_0x7bdb('0x10'),this[_0x7bdb('0x36')][_0x7bdb('0xf')](this));};EmailImap['prototype'][_0x7bdb('0x37')]=function(_0x464fde){simpleParser(_0x464fde,{'Iconv':Iconv},this[_0x7bdb('0x38')][_0x7bdb('0xf')](this));};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x35')]=function(){};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x36')]=function(){};EmailImap[_0x7bdb('0x24')]['handleSimpleParser']=function(_0x5024e1,_0x19c237){if(_0x5024e1){logger[_0x7bdb('0x30')](_0x5024e1);}else{var _0x2de3c1=this;utils[_0x7bdb('0x39')](this[_0x7bdb('0x3a')],_0x19c237,function(_0x509e90){_0x2de3c1['emit'](_0x7bdb('0x1e'),_0x509e90);});}};EmailImap['prototype'][_0x7bdb('0x32')]=function(){this['imap'][_0x7bdb('0x33')](!![],this['handleCloseBox']['bind'](this));};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x31')]=function(_0x192a2b){this[_0x7bdb('0x12')](_0x192a2b);this[_0x7bdb('0x2')][_0x7bdb('0x33')](!![],this[_0x7bdb('0x29')]['bind'](this));};EmailImap['prototype'][_0x7bdb('0x11')]=function(){this[_0x7bdb('0x27')](_0x7bdb('0x10'));};EmailImap[_0x7bdb('0x24')][_0x7bdb('0x12')]=function(_0x1824c6,_0x3f7b3b){logger['error']('handleError',this[_0x7bdb('0x3a')][_0x7bdb('0x1e')],JSON[_0x7bdb('0x3b')](_0x1824c6));var _0x72a81c='';if(_0x1824c6){if(_0x1824c6['textCode']){_0x72a81c=_0x1824c6[_0x7bdb('0x3c')];}else{for(var _0x5951cd in _0x1824c6){if(_0x1824c6[_0x7bdb('0x3d')](_0x5951cd)){_0x72a81c+=_[_0x7bdb('0x3e')](_0x5951cd)+':\x20'+_0x1824c6[_0x5951cd]+'\x0a';}}}}if(_0x3f7b3b){this[_0x7bdb('0x2')][_0x7bdb('0x10')]();}else{this[_0x7bdb('0x27')](_0x7bdb('0x30'),_0x72a81c);this[_0x7bdb('0x27')](_0x7bdb('0x10'));}};module[_0x7bdb('0x3f')]=EmailImap;