Built motion from commit 52c8a02d.|2.6.29
[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 _0x9d21=['connTimeout','authTimeout','service','user','modernAuthentication','generateXOAuth2Token','CloudProvider','data5','password','authentication','anonymous@xcally.com','host','port','tls','autotls','openBox','handleOpenBox','handleCloseBox','end','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','attributes','handleMessageAttributes','handleMessageEnd','handleMessageBody','handleSimpleParser','parser','textCode','hasOwnProperty','upperFirst','emit','exports','lodash','util','imap','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','./utils','email','mailbox','getAccount','account','handleReady','bind','once','handleEnd','error','handleError','connect','inherits','prototype'];(function(_0x57f833,_0x30d050){var _0x1085d7=function(_0x659feb){while(--_0x659feb){_0x57f833['push'](_0x57f833['shift']());}};_0x1085d7(++_0x30d050);}(_0x9d21,0xdd));var _0x19d2=function(_0x13eca7,_0x29b30d){_0x13eca7=_0x13eca7-0x0;var _0x1abd34=_0x9d21[_0x13eca7];return _0x1abd34;};'use strict';var _=require(_0x19d2('0x0'));var util=require(_0x19d2('0x1'));var Imap=require(_0x19d2('0x2'));var simpleParser=require(_0x19d2('0x3'))[_0x19d2('0x4')];var Iconv=require(_0x19d2('0x5'))[_0x19d2('0x6')];var EventEmitter=require(_0x19d2('0x7'))[_0x19d2('0x8')];var utils=require(_0x19d2('0x9'));var logger=require('../../../config/logger')(_0x19d2('0xa'));function EmailImap(_0x4e7323,_0x54d000){this['mailbox']=_0x4e7323[_0x19d2('0xb')];this['account']=this[_0x19d2('0xc')](_0x4e7323,_0x54d000);this[_0x19d2('0x2')]=new Imap(this[_0x19d2('0xd')]);this[_0x19d2('0x2')]['once']('ready',this[_0x19d2('0xe')][_0x19d2('0xf')](this));this[_0x19d2('0x2')][_0x19d2('0x10')]('end',this[_0x19d2('0x11')][_0x19d2('0xf')](this));this[_0x19d2('0x2')]['on'](_0x19d2('0x12'),this[_0x19d2('0x13')][_0x19d2('0xf')](this));this[_0x19d2('0x2')][_0x19d2('0x14')]();}util[_0x19d2('0x15')](EmailImap,EventEmitter);EmailImap[_0x19d2('0x16')][_0x19d2('0xc')]=function(_0x3b1a3c,_0x2e6fc4){var _0x4d24a8={'connTimeout':_0x3b1a3c[_0x19d2('0x17')]?_0x3b1a3c[_0x19d2('0x17')]*0x3e8:0x2710,'authTimeout':_0x3b1a3c[_0x19d2('0x18')]?_0x3b1a3c[_0x19d2('0x18')]*0x3e8:0x1388};if(_0x3b1a3c[_0x19d2('0x19')]){_0x4d24a8[_0x19d2('0x1a')]=_0x3b1a3c['user'];if(_0x3b1a3c[_0x19d2('0x1b')]){_0x4d24a8['xoauth2']=utils[_0x19d2('0x1c')](_0x3b1a3c[_0x19d2('0x1d')][_0x19d2('0x1e')],_0x3b1a3c[_0x19d2('0x1a')]);}else{_0x4d24a8[_0x19d2('0x1f')]=_0x3b1a3c[_0x19d2('0x1f')];}}else{if(_0x3b1a3c[_0x19d2('0x20')]){_0x4d24a8[_0x19d2('0x1a')]=_0x3b1a3c['user'];_0x4d24a8[_0x19d2('0x1f')]=_0x3b1a3c[_0x19d2('0x1f')];}}_0x4d24a8[_0x19d2('0xa')]=_0x2e6fc4||_0x3b1a3c[_0x19d2('0x1a')]||_0x19d2('0x21');_0x4d24a8[_0x19d2('0x22')]=_0x3b1a3c['host'];_0x4d24a8[_0x19d2('0x23')]=_0x3b1a3c[_0x19d2('0x23')]||0x3e1;if(_0x3b1a3c['tls']){_0x4d24a8[_0x19d2('0x24')]=!![];}else{_0x4d24a8[_0x19d2('0x24')]=![];_0x4d24a8[_0x19d2('0x25')]='required';}return _0x4d24a8;};EmailImap[_0x19d2('0x16')][_0x19d2('0xe')]=function(){this[_0x19d2('0x2')][_0x19d2('0x26')](this[_0x19d2('0xb')],![],this[_0x19d2('0x27')]['bind'](this));};EmailImap[_0x19d2('0x16')][_0x19d2('0x27')]=function(_0x39a537,_0x4643cc){if(_0x39a537){this['handleError'](_0x39a537,!![]);}else{this['emit']('box',_0x4643cc);this['readUnseen']();}};EmailImap[_0x19d2('0x16')][_0x19d2('0x28')]=function(_0x13874d){if(_0x13874d){this[_0x19d2('0x13')](_0x13874d,!![]);}else{this['imap'][_0x19d2('0x29')]();}};EmailImap[_0x19d2('0x16')]['readUnseen']=function(){this[_0x19d2('0x2')]['search'](['UNSEEN'],this['handleReadUnseen'][_0x19d2('0xf')](this));};EmailImap['prototype'][_0x19d2('0x2a')]=function(_0x1fddc3,_0x31f84d){if(_0x1fddc3){this[_0x19d2('0x13')](_0x1fddc3,!![]);}else{if(_0x31f84d[_0x19d2('0x2b')]){try{var _0x18e58d=this['imap'][_0x19d2('0x2c')](_0x31f84d,{'bodies':'','markSeen':!![]});_0x18e58d['on'](_0x19d2('0x2d'),this[_0x19d2('0x2e')][_0x19d2('0xf')](this));_0x18e58d[_0x19d2('0x10')](_0x19d2('0x12'),this[_0x19d2('0x2f')][_0x19d2('0xf')](this));_0x18e58d[_0x19d2('0x10')](_0x19d2('0x29'),this[_0x19d2('0x30')][_0x19d2('0xf')](this));}catch(_0x5915cb){logger[_0x19d2('0x12')](_0x5915cb);}}else{this[_0x19d2('0x2')][_0x19d2('0x31')](!![],this[_0x19d2('0x28')][_0x19d2('0xf')](this));}}};EmailImap[_0x19d2('0x16')]['handleFetchMessage']=function(_0x3c248d){_0x3c248d['on']('body',this['handleMessageBody'][_0x19d2('0xf')](this));_0x3c248d[_0x19d2('0x10')](_0x19d2('0x32'),this[_0x19d2('0x33')][_0x19d2('0xf')](this));_0x3c248d[_0x19d2('0x10')]('end',this[_0x19d2('0x34')]['bind'](this));};EmailImap[_0x19d2('0x16')][_0x19d2('0x35')]=function(_0x490dca){simpleParser(_0x490dca,{'Iconv':Iconv},this[_0x19d2('0x36')][_0x19d2('0xf')](this));};EmailImap['prototype']['handleMessageAttributes']=function(){};EmailImap[_0x19d2('0x16')][_0x19d2('0x34')]=function(){};EmailImap['prototype']['handleSimpleParser']=function(_0x571a41,_0x50ee3d){if(_0x571a41){logger[_0x19d2('0x12')](_0x571a41);}else{var _0x813362=this;utils[_0x19d2('0x37')](this[_0x19d2('0xd')],_0x50ee3d,function(_0x2575be){_0x813362['emit'](_0x19d2('0xa'),_0x2575be);});}};EmailImap[_0x19d2('0x16')]['handleFetchEnd']=function(){this[_0x19d2('0x2')][_0x19d2('0x31')](!![],this[_0x19d2('0x28')]['bind'](this));};EmailImap[_0x19d2('0x16')][_0x19d2('0x2f')]=function(_0x9b8ee9){this['handleError'](_0x9b8ee9);this[_0x19d2('0x2')][_0x19d2('0x31')](!![],this[_0x19d2('0x28')][_0x19d2('0xf')](this));};EmailImap['prototype'][_0x19d2('0x11')]=function(){this['emit'](_0x19d2('0x29'));};EmailImap[_0x19d2('0x16')][_0x19d2('0x13')]=function(_0x575fd3,_0x51cf3c){logger['error']('handleError',this['account'][_0x19d2('0xa')],JSON['stringify'](_0x575fd3));var _0x1a0493='';if(_0x575fd3){if(_0x575fd3['textCode']){_0x1a0493=_0x575fd3[_0x19d2('0x38')];}else{for(var _0x1c6950 in _0x575fd3){if(_0x575fd3[_0x19d2('0x39')](_0x1c6950)){_0x1a0493+=_[_0x19d2('0x3a')](_0x1c6950)+':\x20'+_0x575fd3[_0x1c6950]+'\x0a';}}}}if(_0x51cf3c){this[_0x19d2('0x2')]['end']();}else{this['emit']('error',_0x1a0493);this[_0x19d2('0x3b')](_0x19d2('0x29'));}};module[_0x19d2('0x3c')]=EmailImap;