Built motion from commit d13fb11b.|2.6.34
[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 _0xc7e0=['handleMessageAttributes','handleMessageEnd','handleSimpleParser','html','parser','warn','Email\x20text\x20truncated,\x20max\x20HTML\x20size\x20','\x20bytes','\x20[Email\x20text\x20truncated\x20because\x20size\x20more\x20than\x20','\x20bytes]','substring','text','handleCloseBox','handleEnd','stringify','textCode','hasOwnProperty','upperFirst','lodash','imap','mailparser','simpleParser','Iconv','events','EventEmitter','./utils','../../../config/logger','email','../../../config/environment','emailMaxHTMLbytesLimit','mailbox','account','getAccount','ready','handleReady','bind','once','error','handleError','connect','inherits','prototype','connTimeout','authTimeout','service','user','modernAuthentication','xoauth2','generateXOAuth2Token','CloudProvider','data5','password','authentication','anonymous@xcally.com','host','port','tls','openBox','handleOpenBox','emit','box','end','readUnseen','UNSEEN','handleReadUnseen','length','fetch','slice','message','handleFetchError','handleFetchEnd','closeBox','handleFetchMessage','body','handleMessageBody'];(function(_0x531409,_0x57a1fe){var _0x3e3664=function(_0x35dcc3){while(--_0x35dcc3){_0x531409['push'](_0x531409['shift']());}};_0x3e3664(++_0x57a1fe);}(_0xc7e0,0xa8));var _0x0c7e=function(_0x2f9af1,_0x5ede80){_0x2f9af1=_0x2f9af1-0x0;var _0xf0a156=_0xc7e0[_0x2f9af1];return _0xf0a156;};'use strict';var _=require(_0x0c7e('0x0'));var util=require('util');var Imap=require(_0x0c7e('0x1'));var simpleParser=require(_0x0c7e('0x2'))[_0x0c7e('0x3')];var Iconv=require('iconv')[_0x0c7e('0x4')];var EventEmitter=require(_0x0c7e('0x5'))[_0x0c7e('0x6')];var utils=require(_0x0c7e('0x7'));var logger=require(_0x0c7e('0x8'))(_0x0c7e('0x9'));var config=require(_0x0c7e('0xa'));const MAX_HTML_BYTES_SIZE=config[_0x0c7e('0xb')]||0xee6b2800;function EmailImap(_0x4c65c7,_0x2ff8bb){this[_0x0c7e('0xc')]=_0x4c65c7[_0x0c7e('0xc')];this[_0x0c7e('0xd')]=this[_0x0c7e('0xe')](_0x4c65c7,_0x2ff8bb);this[_0x0c7e('0x1')]=new Imap(this[_0x0c7e('0xd')]);this[_0x0c7e('0x1')]['once'](_0x0c7e('0xf'),this[_0x0c7e('0x10')][_0x0c7e('0x11')](this));this[_0x0c7e('0x1')][_0x0c7e('0x12')]('end',this['handleEnd'][_0x0c7e('0x11')](this));this[_0x0c7e('0x1')]['on'](_0x0c7e('0x13'),this[_0x0c7e('0x14')][_0x0c7e('0x11')](this));this['imap'][_0x0c7e('0x15')]();}util[_0x0c7e('0x16')](EmailImap,EventEmitter);EmailImap[_0x0c7e('0x17')][_0x0c7e('0xe')]=function(_0x586bb7,_0x44ae79){var _0x40808d={'connTimeout':_0x586bb7[_0x0c7e('0x18')]?_0x586bb7[_0x0c7e('0x18')]*0x3e8:0x2710,'authTimeout':_0x586bb7[_0x0c7e('0x19')]?_0x586bb7[_0x0c7e('0x19')]*0x3e8:0x1388};if(_0x586bb7[_0x0c7e('0x1a')]){_0x40808d['user']=_0x586bb7[_0x0c7e('0x1b')];if(_0x586bb7[_0x0c7e('0x1c')]){_0x40808d[_0x0c7e('0x1d')]=utils[_0x0c7e('0x1e')](_0x586bb7[_0x0c7e('0x1f')][_0x0c7e('0x20')],_0x586bb7[_0x0c7e('0x1b')]);}else{_0x40808d[_0x0c7e('0x21')]=_0x586bb7[_0x0c7e('0x21')];}}else{if(_0x586bb7[_0x0c7e('0x22')]){_0x40808d[_0x0c7e('0x1b')]=_0x586bb7['user'];_0x40808d[_0x0c7e('0x21')]=_0x586bb7[_0x0c7e('0x21')];}}_0x40808d['email']=_0x44ae79||_0x586bb7[_0x0c7e('0x1b')]||_0x0c7e('0x23');_0x40808d[_0x0c7e('0x24')]=_0x586bb7['host'];_0x40808d['port']=_0x586bb7[_0x0c7e('0x25')]||0x3e1;if(_0x586bb7[_0x0c7e('0x26')]){_0x40808d[_0x0c7e('0x26')]=!![];}else{_0x40808d['tls']=![];_0x40808d['autotls']='required';}return _0x40808d;};EmailImap[_0x0c7e('0x17')]['handleReady']=function(){this[_0x0c7e('0x1')][_0x0c7e('0x27')](this[_0x0c7e('0xc')],![],this[_0x0c7e('0x28')][_0x0c7e('0x11')](this));};EmailImap[_0x0c7e('0x17')]['handleOpenBox']=function(_0x176840,_0x3330b1){if(_0x176840){this[_0x0c7e('0x14')](_0x176840,!![]);}else{this[_0x0c7e('0x29')](_0x0c7e('0x2a'),_0x3330b1);this['readUnseen']();}};EmailImap[_0x0c7e('0x17')]['handleCloseBox']=function(_0x43b2fb){if(_0x43b2fb){this[_0x0c7e('0x14')](_0x43b2fb,!![]);}else{this[_0x0c7e('0x1')][_0x0c7e('0x2b')]();}};EmailImap['prototype'][_0x0c7e('0x2c')]=function(){this[_0x0c7e('0x1')]['search']([_0x0c7e('0x2d')],this['handleReadUnseen'][_0x0c7e('0x11')](this));};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x2e')]=function(_0xb2960e,_0x168942){if(_0xb2960e){this['handleError'](_0xb2960e,!![]);}else{if(_0x168942[_0x0c7e('0x2f')]){try{var _0x3aac2c=this[_0x0c7e('0x1')][_0x0c7e('0x30')](_0x168942[_0x0c7e('0x31')](0x0,0xa),{'bodies':'','markSeen':!![]});_0x3aac2c['on'](_0x0c7e('0x32'),this['handleFetchMessage'][_0x0c7e('0x11')](this));_0x3aac2c['once'](_0x0c7e('0x13'),this[_0x0c7e('0x33')][_0x0c7e('0x11')](this));_0x3aac2c['once'](_0x0c7e('0x2b'),this[_0x0c7e('0x34')]['bind'](this));}catch(_0x1d3ccc){logger[_0x0c7e('0x13')](_0x1d3ccc);}}else{this['imap'][_0x0c7e('0x35')](!![],this['handleCloseBox'][_0x0c7e('0x11')](this));}}};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x36')]=function(_0x5ac8f4){_0x5ac8f4['on'](_0x0c7e('0x37'),this[_0x0c7e('0x38')][_0x0c7e('0x11')](this));_0x5ac8f4[_0x0c7e('0x12')]('attributes',this[_0x0c7e('0x39')][_0x0c7e('0x11')](this));_0x5ac8f4[_0x0c7e('0x12')](_0x0c7e('0x2b'),this[_0x0c7e('0x3a')][_0x0c7e('0x11')](this));};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x38')]=function(_0x45683c){simpleParser(_0x45683c,{'Iconv':Iconv},this[_0x0c7e('0x3b')][_0x0c7e('0x11')](this));};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x39')]=function(){};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x3a')]=function(){};EmailImap[_0x0c7e('0x17')]['handleSimpleParser']=function(_0x46824f,_0x21b690){if(_0x46824f){logger[_0x0c7e('0x13')](_0x46824f);}else{var _0x250d78=this;const _0x22fa7e=_0x21b690[_0x0c7e('0x3c')][_0x0c7e('0x2f')];if(_0x22fa7e<MAX_HTML_BYTES_SIZE){utils[_0x0c7e('0x3d')](this['account'],_0x21b690,function(_0x209664){_0x250d78[_0x0c7e('0x29')]('email',_0x209664);});}else{logger[_0x0c7e('0x3e')](_0x0c7e('0x3f')+MAX_HTML_BYTES_SIZE+'\x20bytes,\x20email\x20size:\x20'+_0x21b690[_0x0c7e('0x3c')][_0x0c7e('0x2f')]+_0x0c7e('0x40'));const _0x962a1f=_0x0c7e('0x41')+MAX_HTML_BYTES_SIZE+_0x0c7e('0x42');const _0x4b6c3c=_0x21b690['text'][_0x0c7e('0x43')](0x0,MAX_HTML_BYTES_SIZE);_0x21b690[_0x0c7e('0x44')]=_0x4b6c3c+_0x962a1f;_0x21b690[_0x0c7e('0x3c')]=_0x4b6c3c+_0x962a1f;utils['parser'](this[_0x0c7e('0xd')],_0x21b690,function(_0x5cfde6){_0x250d78[_0x0c7e('0x29')]('email',_0x5cfde6);});}}};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x34')]=function(){this[_0x0c7e('0x1')][_0x0c7e('0x35')](!![],this[_0x0c7e('0x45')][_0x0c7e('0x11')](this));};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x33')]=function(_0x2dd176){this[_0x0c7e('0x14')](_0x2dd176);this[_0x0c7e('0x1')]['closeBox'](!![],this[_0x0c7e('0x45')][_0x0c7e('0x11')](this));};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x46')]=function(){this['emit'](_0x0c7e('0x2b'));};EmailImap[_0x0c7e('0x17')][_0x0c7e('0x14')]=function(_0x1b7b70,_0x4227f6){logger[_0x0c7e('0x13')](_0x0c7e('0x14'),this['account'][_0x0c7e('0x9')],JSON[_0x0c7e('0x47')](_0x1b7b70));var _0x1131d4='';if(_0x1b7b70){if(_0x1b7b70['textCode']){_0x1131d4=_0x1b7b70[_0x0c7e('0x48')];}else{for(var _0x3d86cc in _0x1b7b70){if(_0x1b7b70[_0x0c7e('0x49')](_0x3d86cc)){_0x1131d4+=_[_0x0c7e('0x4a')](_0x3d86cc)+':\x20'+_0x1b7b70[_0x3d86cc]+'\x0a';}}}}if(_0x4227f6){this[_0x0c7e('0x1')]['end']();this['emit'](_0x0c7e('0x2b'));}else{this['emit'](_0x0c7e('0x13'),_0x1131d4);this[_0x0c7e('0x29')](_0x0c7e('0x2b'));}};module['exports']=EmailImap;