30aeb8c7d6bd075808eaa42d48866e2f12c2bf1d
[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 _0xa7ff=['mailbox','account','getAccount','once','ready','handleEnd','bind','error','handleError','connTimeout','authTimeout','service','user','modernAuthentication','xoauth2','generateXOAuth2Token','CloudProvider','data5','password','authentication','anonymous@xcally.com','host','port','tls','autotls','prototype','openBox','handleOpenBox','box','readUnseen','handleCloseBox','end','search','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','handleMessageAttributes','handleSimpleParser','handleMessageEnd','parser','emit','closeBox','stringify','textCode','exports','lodash','util','imap','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','./utils','email'];(function(_0x1ed116,_0x23bc80){var _0x574066=function(_0x424f9e){while(--_0x424f9e){_0x1ed116['push'](_0x1ed116['shift']());}};_0x574066(++_0x23bc80);}(_0xa7ff,0x1a0));var _0xfa7f=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0xa7ff[_0x576170];return _0x397c70;};'use strict';var _=require(_0xfa7f('0x0'));var util=require(_0xfa7f('0x1'));var Imap=require(_0xfa7f('0x2'));var simpleParser=require(_0xfa7f('0x3'))[_0xfa7f('0x4')];var Iconv=require(_0xfa7f('0x5'))[_0xfa7f('0x6')];var EventEmitter=require(_0xfa7f('0x7'))[_0xfa7f('0x8')];var utils=require(_0xfa7f('0x9'));var logger=require('../../../config/logger')(_0xfa7f('0xa'));function EmailImap(_0x3a0ded,_0x50963d){this['mailbox']=_0x3a0ded[_0xfa7f('0xb')];this[_0xfa7f('0xc')]=this[_0xfa7f('0xd')](_0x3a0ded,_0x50963d);this[_0xfa7f('0x2')]=new Imap(this[_0xfa7f('0xc')]);this[_0xfa7f('0x2')][_0xfa7f('0xe')](_0xfa7f('0xf'),this['handleReady']['bind'](this));this[_0xfa7f('0x2')]['once']('end',this[_0xfa7f('0x10')][_0xfa7f('0x11')](this));this[_0xfa7f('0x2')]['on'](_0xfa7f('0x12'),this[_0xfa7f('0x13')][_0xfa7f('0x11')](this));this[_0xfa7f('0x2')]['connect']();}util['inherits'](EmailImap,EventEmitter);EmailImap['prototype'][_0xfa7f('0xd')]=function(_0x71b630,_0x5082e1){var _0x38cec8={'connTimeout':_0x71b630[_0xfa7f('0x14')]?_0x71b630[_0xfa7f('0x14')]*0x3e8:0x2710,'authTimeout':_0x71b630[_0xfa7f('0x15')]?_0x71b630[_0xfa7f('0x15')]*0x3e8:0x1388};if(_0x71b630[_0xfa7f('0x16')]){_0x38cec8[_0xfa7f('0x17')]=_0x71b630[_0xfa7f('0x17')];if(_0x71b630[_0xfa7f('0x18')]){_0x38cec8[_0xfa7f('0x19')]=utils[_0xfa7f('0x1a')](_0x71b630[_0xfa7f('0x1b')][_0xfa7f('0x1c')],_0x71b630[_0xfa7f('0x17')]);}else{_0x38cec8[_0xfa7f('0x1d')]=_0x71b630['password'];}}else{if(_0x71b630[_0xfa7f('0x1e')]){_0x38cec8['user']=_0x71b630[_0xfa7f('0x17')];_0x38cec8[_0xfa7f('0x1d')]=_0x71b630[_0xfa7f('0x1d')];}}_0x38cec8[_0xfa7f('0xa')]=_0x5082e1||_0x71b630[_0xfa7f('0x17')]||_0xfa7f('0x1f');_0x38cec8[_0xfa7f('0x20')]=_0x71b630[_0xfa7f('0x20')];_0x38cec8[_0xfa7f('0x21')]=_0x71b630[_0xfa7f('0x21')]||0x3e1;if(_0x71b630['tls']){_0x38cec8[_0xfa7f('0x22')]=!![];}else{_0x38cec8['tls']=![];_0x38cec8[_0xfa7f('0x23')]='required';}return _0x38cec8;};EmailImap[_0xfa7f('0x24')]['handleReady']=function(){this[_0xfa7f('0x2')][_0xfa7f('0x25')](this[_0xfa7f('0xb')],![],this[_0xfa7f('0x26')][_0xfa7f('0x11')](this));};EmailImap[_0xfa7f('0x24')]['handleOpenBox']=function(_0x51d1e4,_0x22b82d){if(_0x51d1e4){this[_0xfa7f('0x13')](_0x51d1e4,!![]);}else{this['emit'](_0xfa7f('0x27'),_0x22b82d);this[_0xfa7f('0x28')]();}};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x29')]=function(_0x4c4b51){if(_0x4c4b51){this['handleError'](_0x4c4b51,!![]);}else{this[_0xfa7f('0x2')][_0xfa7f('0x2a')]();}};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x28')]=function(){this[_0xfa7f('0x2')][_0xfa7f('0x2b')]([_0xfa7f('0x2c')],this[_0xfa7f('0x2d')][_0xfa7f('0x11')](this));};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x2d')]=function(_0x20bcc9,_0x45f87b){if(_0x20bcc9){this['handleError'](_0x20bcc9,!![]);}else{if(_0x45f87b[_0xfa7f('0x2e')]){try{var _0x848cf1=this[_0xfa7f('0x2')][_0xfa7f('0x2f')](_0x45f87b,{'bodies':'','markSeen':!![]});_0x848cf1['on'](_0xfa7f('0x30'),this[_0xfa7f('0x31')][_0xfa7f('0x11')](this));_0x848cf1[_0xfa7f('0xe')](_0xfa7f('0x12'),this[_0xfa7f('0x32')][_0xfa7f('0x11')](this));_0x848cf1[_0xfa7f('0xe')](_0xfa7f('0x2a'),this[_0xfa7f('0x33')]['bind'](this));}catch(_0x2a8a4a){logger[_0xfa7f('0x12')](_0x2a8a4a);}}else{this[_0xfa7f('0x2')]['closeBox'](!![],this['handleCloseBox'][_0xfa7f('0x11')](this));}}};EmailImap[_0xfa7f('0x24')]['handleFetchMessage']=function(_0x4292fb){_0x4292fb['on']('body',this['handleMessageBody'][_0xfa7f('0x11')](this));_0x4292fb[_0xfa7f('0xe')]('attributes',this[_0xfa7f('0x34')]['bind'](this));_0x4292fb[_0xfa7f('0xe')]('end',this['handleMessageEnd'][_0xfa7f('0x11')](this));};EmailImap['prototype']['handleMessageBody']=function(_0x2f768c){simpleParser(_0x2f768c,{'Iconv':Iconv},this[_0xfa7f('0x35')][_0xfa7f('0x11')](this));};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x34')]=function(){};EmailImap['prototype'][_0xfa7f('0x36')]=function(){};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x35')]=function(_0x372f54,_0x3f28ed){if(_0x372f54){logger[_0xfa7f('0x12')](_0x372f54);}else{var _0x55e7c5=this;utils[_0xfa7f('0x37')](this[_0xfa7f('0xc')],_0x3f28ed,function(_0x2f21b9){_0x55e7c5[_0xfa7f('0x38')](_0xfa7f('0xa'),_0x2f21b9);});}};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x33')]=function(){this[_0xfa7f('0x2')][_0xfa7f('0x39')](!![],this[_0xfa7f('0x29')]['bind'](this));};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x32')]=function(_0x43be3b){this[_0xfa7f('0x13')](_0x43be3b);this[_0xfa7f('0x2')]['closeBox'](!![],this[_0xfa7f('0x29')]['bind'](this));};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x10')]=function(){this[_0xfa7f('0x38')](_0xfa7f('0x2a'));};EmailImap[_0xfa7f('0x24')][_0xfa7f('0x13')]=function(_0x58c147,_0x3083c2){logger[_0xfa7f('0x12')](_0xfa7f('0x13'),this[_0xfa7f('0xc')][_0xfa7f('0xa')],JSON[_0xfa7f('0x3a')](_0x58c147));var _0x54c81b='';if(_0x58c147){if(_0x58c147[_0xfa7f('0x3b')]){_0x54c81b=_0x58c147[_0xfa7f('0x3b')];}else{for(var _0x309599 in _0x58c147){if(_0x58c147['hasOwnProperty'](_0x309599)){_0x54c81b+=_['upperFirst'](_0x309599)+':\x20'+_0x58c147[_0x309599]+'\x0a';}}}}if(_0x3083c2){this[_0xfa7f('0x2')][_0xfa7f('0x2a')]();}else{this['emit'](_0xfa7f('0x12'),_0x54c81b);this[_0xfa7f('0x38')]('end');}};module[_0xfa7f('0x3c')]=EmailImap;