Built motion from commit 497d3d92.|2.5.43
[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 _0x3f8a=['handleFetchEnd','closeBox','handleCloseBox','handleMessageBody','handleMessageEnd','handleSimpleParser','handleMessageAttributes','parser','emit','stringify','textCode','hasOwnProperty','upperFirst','exports','lodash','util','imap','mailparser','iconv','Iconv','events','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX','account','getAccount','once','handleReady','bind','handleEnd','error','handleError','connect','inherits','prototype','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','modernAuthentication','generateXOAuth2Token','data5','anonymous@xcally.com','openBox','handleOpenBox','box','readUnseen','end','search','UNSEEN','handleReadUnseen','length','message','handleFetchMessage'];(function(_0x52878d,_0x1f7ccb){var _0x3971ea=function(_0x4a89a3){while(--_0x4a89a3){_0x52878d['push'](_0x52878d['shift']());}};_0x3971ea(++_0x1f7ccb);}(_0x3f8a,0x1d5));var _0xa3f8=function(_0x3f8e1f,_0x36c009){_0x3f8e1f=_0x3f8e1f-0x0;var _0x570400=_0x3f8a[_0x3f8e1f];return _0x570400;};'use strict';var _=require(_0xa3f8('0x0'));var util=require(_0xa3f8('0x1'));var Imap=require(_0xa3f8('0x2'));var simpleParser=require(_0xa3f8('0x3'))['simpleParser'];var Iconv=require(_0xa3f8('0x4'))[_0xa3f8('0x5')];var EventEmitter=require(_0xa3f8('0x6'))[_0xa3f8('0x7')];var utils=require(_0xa3f8('0x8'));var logger=require(_0xa3f8('0x9'))(_0xa3f8('0xa'));function EmailImap(_0x471464,_0x1f160a){this[_0xa3f8('0xb')]=_0xa3f8('0xc');this[_0xa3f8('0xd')]=this[_0xa3f8('0xe')](_0x471464,_0x1f160a);this[_0xa3f8('0x2')]=new Imap(this[_0xa3f8('0xd')]);this[_0xa3f8('0x2')][_0xa3f8('0xf')]('ready',this[_0xa3f8('0x10')][_0xa3f8('0x11')](this));this[_0xa3f8('0x2')][_0xa3f8('0xf')]('end',this[_0xa3f8('0x12')][_0xa3f8('0x11')](this));this[_0xa3f8('0x2')]['on'](_0xa3f8('0x13'),this[_0xa3f8('0x14')][_0xa3f8('0x11')](this));this[_0xa3f8('0x2')][_0xa3f8('0x15')]();}util[_0xa3f8('0x16')](EmailImap,EventEmitter);EmailImap[_0xa3f8('0x17')][_0xa3f8('0xe')]=function(_0x2c5e15,_0x5b2c33){var _0x2d8f74={'connTimeout':_0x2c5e15[_0xa3f8('0x18')]?_0x2c5e15[_0xa3f8('0x18')]*0x3e8:0x2710,'authTimeout':_0x2c5e15[_0xa3f8('0x19')]?_0x2c5e15['authTimeout']*0x3e8:0x1388};if(_[_0xa3f8('0x1a')](_0x2c5e15[_0xa3f8('0x1b')])){if(_0x2c5e15[_0xa3f8('0x1c')]){_0x2d8f74[_0xa3f8('0x1d')]=_0x2c5e15[_0xa3f8('0x1d')];_0x2d8f74[_0xa3f8('0x1e')]=_0x2c5e15[_0xa3f8('0x1e')];}_0x2d8f74[_0xa3f8('0x1f')]=_0x2c5e15[_0xa3f8('0x1f')];_0x2d8f74[_0xa3f8('0x20')]=_0x2c5e15['port']||0x3e1;if(_0x2c5e15[_0xa3f8('0x21')]){_0x2d8f74['tls']=!![];}else{_0x2d8f74[_0xa3f8('0x21')]=![];_0x2d8f74[_0xa3f8('0x22')]=_0xa3f8('0x23');}}else{if(_0x2c5e15[_0xa3f8('0x24')]){_0x2d8f74['xoauth2']=utils[_0xa3f8('0x25')](_0x2c5e15['CloudProvider'][_0xa3f8('0x26')],_0x2c5e15['user']);_0x2d8f74[_0xa3f8('0x1d')]=_0x2c5e15[_0xa3f8('0x1d')];}else{_0x2d8f74[_0xa3f8('0x1d')]=_0x2c5e15[_0xa3f8('0x1d')];_0x2d8f74[_0xa3f8('0x1e')]=_0x2c5e15[_0xa3f8('0x1e')];}_0x2d8f74[_0xa3f8('0x1f')]=utils['getHost'](_0x2c5e15[_0xa3f8('0x1b')]);_0x2d8f74['port']=0x3e1;_0x2d8f74[_0xa3f8('0x21')]=!![];}_0x2d8f74[_0xa3f8('0xa')]=_0x5b2c33||_0x2c5e15[_0xa3f8('0x1d')]||_0xa3f8('0x27');return _0x2d8f74;};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x10')]=function(){this[_0xa3f8('0x2')][_0xa3f8('0x28')](this[_0xa3f8('0xb')],![],this[_0xa3f8('0x29')]['bind'](this));};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x29')]=function(_0x3344ba,_0x5a8fcf){if(_0x3344ba){this[_0xa3f8('0x14')](_0x3344ba,!![]);}else{this['emit'](_0xa3f8('0x2a'),_0x5a8fcf);this[_0xa3f8('0x2b')]();}};EmailImap[_0xa3f8('0x17')]['handleCloseBox']=function(_0x458824){if(_0x458824){this['handleError'](_0x458824,!![]);}else{this[_0xa3f8('0x2')][_0xa3f8('0x2c')]();}};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x2b')]=function(){this[_0xa3f8('0x2')][_0xa3f8('0x2d')]([_0xa3f8('0x2e')],this[_0xa3f8('0x2f')][_0xa3f8('0x11')](this));};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x2f')]=function(_0x57c465,_0x4404da){if(_0x57c465){this[_0xa3f8('0x14')](_0x57c465,!![]);}else{if(_0x4404da[_0xa3f8('0x30')]){try{var _0x1954f5=this[_0xa3f8('0x2')]['fetch'](_0x4404da,{'bodies':'','markSeen':!![]});_0x1954f5['on'](_0xa3f8('0x31'),this[_0xa3f8('0x32')]['bind'](this));_0x1954f5[_0xa3f8('0xf')](_0xa3f8('0x13'),this['handleFetchError'][_0xa3f8('0x11')](this));_0x1954f5['once']('end',this[_0xa3f8('0x33')][_0xa3f8('0x11')](this));}catch(_0x52668d){logger[_0xa3f8('0x13')](_0x52668d);}}else{this['imap'][_0xa3f8('0x34')](!![],this[_0xa3f8('0x35')][_0xa3f8('0x11')](this));}}};EmailImap[_0xa3f8('0x17')]['handleFetchMessage']=function(_0x449342){_0x449342['on']('body',this[_0xa3f8('0x36')]['bind'](this));_0x449342[_0xa3f8('0xf')]('attributes',this['handleMessageAttributes']['bind'](this));_0x449342[_0xa3f8('0xf')](_0xa3f8('0x2c'),this[_0xa3f8('0x37')][_0xa3f8('0x11')](this));};EmailImap['prototype'][_0xa3f8('0x36')]=function(_0x18b9bc){simpleParser(_0x18b9bc,{'Iconv':Iconv},this[_0xa3f8('0x38')][_0xa3f8('0x11')](this));};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x39')]=function(){};EmailImap['prototype'][_0xa3f8('0x37')]=function(){};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x38')]=function(_0x51de10,_0x941bde){if(_0x51de10){logger[_0xa3f8('0x13')](_0x51de10);}else{var _0x5ce212=this;utils[_0xa3f8('0x3a')](this['account'],_0x941bde,function(_0xbf8209){_0x5ce212['emit'](_0xa3f8('0xa'),_0xbf8209);});}};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x33')]=function(){this[_0xa3f8('0x2')][_0xa3f8('0x34')](!![],this['handleCloseBox'][_0xa3f8('0x11')](this));};EmailImap[_0xa3f8('0x17')]['handleFetchError']=function(_0x27c938){this['handleError'](_0x27c938);this[_0xa3f8('0x2')][_0xa3f8('0x34')](!![],this[_0xa3f8('0x35')][_0xa3f8('0x11')](this));};EmailImap[_0xa3f8('0x17')]['handleEnd']=function(){this[_0xa3f8('0x3b')](_0xa3f8('0x2c'));};EmailImap[_0xa3f8('0x17')][_0xa3f8('0x14')]=function(_0x337808,_0x54608c){logger[_0xa3f8('0x13')](_0xa3f8('0x14'),this[_0xa3f8('0xd')][_0xa3f8('0xa')],JSON[_0xa3f8('0x3c')](_0x337808));var _0x314dba='';if(_0x337808){if(_0x337808[_0xa3f8('0x3d')]){_0x314dba=_0x337808[_0xa3f8('0x3d')];}else{for(var _0x12fb0d in _0x337808){if(_0x337808[_0xa3f8('0x3e')](_0x12fb0d)){_0x314dba+=_[_0xa3f8('0x3f')](_0x12fb0d)+':\x20'+_0x337808[_0x12fb0d]+'\x0a';}}}}if(_0x54608c){this[_0xa3f8('0x2')][_0xa3f8('0x2c')]();}else{this['emit']('error',_0x314dba);this['emit'](_0xa3f8('0x2c'));}};module[_0xa3f8('0x40')]=EmailImap;