Built motion from commit 753c950e.|2.5.42
[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 _0x1623=['bind','error','handleError','connect','prototype','connTimeout','authTimeout','isNil','service','user','password','host','port','tls','autotls','modernAuthentication','CloudProvider','data5','getHost','email','anonymous@xcally.com','handleReady','openBox','mailbox','handleOpenBox','box','readUnseen','search','handleReadUnseen','length','fetch','handleFetchMessage','handleFetchError','handleFetchEnd','handleCloseBox','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','emit','closeBox','textCode','hasOwnProperty','upperFirst','exports','lodash','mailparser','simpleParser','iconv','Iconv','events','../../../config/logger','INBOX','account','getAccount','imap','once','ready','end','handleEnd'];(function(_0x4e6fb2,_0x3cf23e){var _0x2f1636=function(_0x53c7eb){while(--_0x53c7eb){_0x4e6fb2['push'](_0x4e6fb2['shift']());}};_0x2f1636(++_0x3cf23e);}(_0x1623,0xab));var _0x3162=function(_0xa66bc0,_0x3dd273){_0xa66bc0=_0xa66bc0-0x0;var _0x28f754=_0x1623[_0xa66bc0];return _0x28f754;};'use strict';var _=require(_0x3162('0x0'));var util=require('util');var Imap=require('imap');var simpleParser=require(_0x3162('0x1'))[_0x3162('0x2')];var Iconv=require(_0x3162('0x3'))[_0x3162('0x4')];var EventEmitter=require(_0x3162('0x5'))['EventEmitter'];var utils=require('./utils');var logger=require(_0x3162('0x6'))('email');function EmailImap(_0x1b55f2,_0x428de6){this['mailbox']=_0x3162('0x7');this[_0x3162('0x8')]=this[_0x3162('0x9')](_0x1b55f2,_0x428de6);this[_0x3162('0xa')]=new Imap(this[_0x3162('0x8')]);this[_0x3162('0xa')][_0x3162('0xb')](_0x3162('0xc'),this['handleReady']['bind'](this));this[_0x3162('0xa')][_0x3162('0xb')](_0x3162('0xd'),this[_0x3162('0xe')][_0x3162('0xf')](this));this[_0x3162('0xa')]['on'](_0x3162('0x10'),this[_0x3162('0x11')][_0x3162('0xf')](this));this['imap'][_0x3162('0x12')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x3162('0x13')][_0x3162('0x9')]=function(_0x49d1ad,_0x4a393a){var _0x198764={'connTimeout':_0x49d1ad[_0x3162('0x14')]?_0x49d1ad[_0x3162('0x14')]*0x3e8:0x2710,'authTimeout':_0x49d1ad['authTimeout']?_0x49d1ad[_0x3162('0x15')]*0x3e8:0x1388};if(_[_0x3162('0x16')](_0x49d1ad[_0x3162('0x17')])){if(_0x49d1ad['authentication']){_0x198764[_0x3162('0x18')]=_0x49d1ad[_0x3162('0x18')];_0x198764[_0x3162('0x19')]=_0x49d1ad[_0x3162('0x19')];}_0x198764[_0x3162('0x1a')]=_0x49d1ad[_0x3162('0x1a')];_0x198764[_0x3162('0x1b')]=_0x49d1ad['port']||0x3e1;if(_0x49d1ad[_0x3162('0x1c')]){_0x198764[_0x3162('0x1c')]=!![];}else{_0x198764[_0x3162('0x1c')]=![];_0x198764[_0x3162('0x1d')]='required';}}else{if(_0x49d1ad[_0x3162('0x1e')]){_0x198764['xoauth2']=utils['generateXOAuth2Token'](_0x49d1ad[_0x3162('0x1f')][_0x3162('0x20')],_0x49d1ad[_0x3162('0x18')]);_0x198764['user']=_0x49d1ad['user'];}else{_0x198764[_0x3162('0x18')]=_0x49d1ad[_0x3162('0x18')];_0x198764[_0x3162('0x19')]=_0x49d1ad[_0x3162('0x19')];}_0x198764[_0x3162('0x1a')]=utils[_0x3162('0x21')](_0x49d1ad[_0x3162('0x17')]);_0x198764[_0x3162('0x1b')]=0x3e1;_0x198764['tls']=!![];}_0x198764[_0x3162('0x22')]=_0x4a393a||_0x49d1ad[_0x3162('0x18')]||_0x3162('0x23');return _0x198764;};EmailImap[_0x3162('0x13')][_0x3162('0x24')]=function(){this[_0x3162('0xa')][_0x3162('0x25')](this[_0x3162('0x26')],![],this[_0x3162('0x27')][_0x3162('0xf')](this));};EmailImap[_0x3162('0x13')][_0x3162('0x27')]=function(_0x1c03a4,_0x48de45){if(_0x1c03a4){this[_0x3162('0x11')](_0x1c03a4,!![]);}else{this['emit'](_0x3162('0x28'),_0x48de45);this[_0x3162('0x29')]();}};EmailImap[_0x3162('0x13')]['handleCloseBox']=function(_0x4903e7){if(_0x4903e7){this[_0x3162('0x11')](_0x4903e7,!![]);}else{this[_0x3162('0xa')][_0x3162('0xd')]();}};EmailImap[_0x3162('0x13')][_0x3162('0x29')]=function(){this['imap'][_0x3162('0x2a')](['UNSEEN'],this[_0x3162('0x2b')][_0x3162('0xf')](this));};EmailImap[_0x3162('0x13')][_0x3162('0x2b')]=function(_0x118dab,_0x18b9f2){if(_0x118dab){this[_0x3162('0x11')](_0x118dab,!![]);}else{if(_0x18b9f2[_0x3162('0x2c')]){try{var _0x549ffe=this[_0x3162('0xa')][_0x3162('0x2d')](_0x18b9f2,{'bodies':'','markSeen':!![]});_0x549ffe['on']('message',this[_0x3162('0x2e')][_0x3162('0xf')](this));_0x549ffe['once']('error',this[_0x3162('0x2f')]['bind'](this));_0x549ffe[_0x3162('0xb')](_0x3162('0xd'),this[_0x3162('0x30')]['bind'](this));}catch(_0x548f7f){logger[_0x3162('0x10')](_0x548f7f);}}else{this[_0x3162('0xa')]['closeBox'](!![],this[_0x3162('0x31')]['bind'](this));}}};EmailImap[_0x3162('0x13')][_0x3162('0x2e')]=function(_0x339be2){_0x339be2['on'](_0x3162('0x32'),this[_0x3162('0x33')][_0x3162('0xf')](this));_0x339be2[_0x3162('0xb')](_0x3162('0x34'),this[_0x3162('0x35')][_0x3162('0xf')](this));_0x339be2[_0x3162('0xb')]('end',this[_0x3162('0x36')][_0x3162('0xf')](this));};EmailImap[_0x3162('0x13')]['handleMessageBody']=function(_0x59759d){simpleParser(_0x59759d,{'Iconv':Iconv},this[_0x3162('0x37')][_0x3162('0xf')](this));};EmailImap[_0x3162('0x13')][_0x3162('0x35')]=function(){};EmailImap['prototype'][_0x3162('0x36')]=function(){};EmailImap['prototype']['handleSimpleParser']=function(_0x5dee49,_0x298ed7){if(_0x5dee49){logger[_0x3162('0x10')](_0x5dee49);}else{var _0x315fdb=this;utils['parser'](this[_0x3162('0x8')],_0x298ed7,function(_0x2ce9c6){_0x315fdb[_0x3162('0x38')](_0x3162('0x22'),_0x2ce9c6);});}};EmailImap[_0x3162('0x13')]['handleFetchEnd']=function(){this['imap'][_0x3162('0x39')](!![],this[_0x3162('0x31')]['bind'](this));};EmailImap['prototype'][_0x3162('0x2f')]=function(_0x32c960){this[_0x3162('0x11')](_0x32c960);this['imap'][_0x3162('0x39')](!![],this[_0x3162('0x31')][_0x3162('0xf')](this));};EmailImap[_0x3162('0x13')]['handleEnd']=function(){this[_0x3162('0x38')](_0x3162('0xd'));};EmailImap['prototype'][_0x3162('0x11')]=function(_0x337352,_0x500e6b){logger[_0x3162('0x10')](_0x3162('0x11'),this['account'][_0x3162('0x22')],JSON['stringify'](_0x337352));var _0x4146f1='';if(_0x337352){if(_0x337352[_0x3162('0x3a')]){_0x4146f1=_0x337352[_0x3162('0x3a')];}else{for(var _0x262f9d in _0x337352){if(_0x337352[_0x3162('0x3b')](_0x262f9d)){_0x4146f1+=_[_0x3162('0x3c')](_0x262f9d)+':\x20'+_0x337352[_0x262f9d]+'\x0a';}}}}if(_0x500e6b){this['imap'][_0x3162('0xd')]();}else{this[_0x3162('0x38')](_0x3162('0x10'),_0x4146f1);this['emit'](_0x3162('0xd'));}};module[_0x3162('0x3d')]=EmailImap;