Built motion from commit 42801a18.|2.6.28
[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 _0xc826=['connTimeout','authTimeout','user','modernAuthentication','xoauth2','generateXOAuth2Token','CloudProvider','data5','password','authentication','email','anonymous@xcally.com','host','port','tls','required','openBox','handleOpenBox','emit','box','readUnseen','search','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','body','handleMessageBody','handleMessageAttributes','handleMessageEnd','handleSimpleParser','handleCloseBox','textCode','upperFirst','lodash','util','imap','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','./utils','../../../config/logger','mailbox','account','getAccount','once','ready','handleReady','end','handleEnd','error','handleError','bind','connect','inherits','prototype'];(function(_0x12fa03,_0x4676ca){var _0x46a4f6=function(_0x522b68){while(--_0x522b68){_0x12fa03['push'](_0x12fa03['shift']());}};_0x46a4f6(++_0x4676ca);}(_0xc826,0x65));var _0x6c82=function(_0x44002d,_0x43f0be){_0x44002d=_0x44002d-0x0;var _0x4bc1fb=_0xc826[_0x44002d];return _0x4bc1fb;};'use strict';var _=require(_0x6c82('0x0'));var util=require(_0x6c82('0x1'));var Imap=require(_0x6c82('0x2'));var simpleParser=require(_0x6c82('0x3'))[_0x6c82('0x4')];var Iconv=require(_0x6c82('0x5'))[_0x6c82('0x6')];var EventEmitter=require(_0x6c82('0x7'))[_0x6c82('0x8')];var utils=require(_0x6c82('0x9'));var logger=require(_0x6c82('0xa'))('email');function EmailImap(_0x5315c9,_0x567855){this[_0x6c82('0xb')]=_0x5315c9[_0x6c82('0xb')];this[_0x6c82('0xc')]=this[_0x6c82('0xd')](_0x5315c9,_0x567855);this[_0x6c82('0x2')]=new Imap(this[_0x6c82('0xc')]);this[_0x6c82('0x2')][_0x6c82('0xe')](_0x6c82('0xf'),this[_0x6c82('0x10')]['bind'](this));this[_0x6c82('0x2')][_0x6c82('0xe')](_0x6c82('0x11'),this[_0x6c82('0x12')]['bind'](this));this[_0x6c82('0x2')]['on'](_0x6c82('0x13'),this[_0x6c82('0x14')][_0x6c82('0x15')](this));this[_0x6c82('0x2')][_0x6c82('0x16')]();}util[_0x6c82('0x17')](EmailImap,EventEmitter);EmailImap[_0x6c82('0x18')][_0x6c82('0xd')]=function(_0x1a1d9f,_0xd905cb){var _0xd1a900={'connTimeout':_0x1a1d9f[_0x6c82('0x19')]?_0x1a1d9f[_0x6c82('0x19')]*0x3e8:0x2710,'authTimeout':_0x1a1d9f[_0x6c82('0x1a')]?_0x1a1d9f[_0x6c82('0x1a')]*0x3e8:0x1388};if(_0x1a1d9f['service']){_0xd1a900['user']=_0x1a1d9f[_0x6c82('0x1b')];if(_0x1a1d9f[_0x6c82('0x1c')]){_0xd1a900[_0x6c82('0x1d')]=utils[_0x6c82('0x1e')](_0x1a1d9f[_0x6c82('0x1f')][_0x6c82('0x20')],_0x1a1d9f[_0x6c82('0x1b')]);}else{_0xd1a900[_0x6c82('0x21')]=_0x1a1d9f[_0x6c82('0x21')];}}else{if(_0x1a1d9f[_0x6c82('0x22')]){_0xd1a900['user']=_0x1a1d9f[_0x6c82('0x1b')];_0xd1a900[_0x6c82('0x21')]=_0x1a1d9f['password'];}}_0xd1a900[_0x6c82('0x23')]=_0xd905cb||_0x1a1d9f[_0x6c82('0x1b')]||_0x6c82('0x24');_0xd1a900['host']=_0x1a1d9f[_0x6c82('0x25')];_0xd1a900[_0x6c82('0x26')]=_0x1a1d9f['port']||0x3e1;if(_0x1a1d9f['tls']){_0xd1a900[_0x6c82('0x27')]=!![];}else{_0xd1a900[_0x6c82('0x27')]=![];_0xd1a900['autotls']=_0x6c82('0x28');}return _0xd1a900;};EmailImap[_0x6c82('0x18')]['handleReady']=function(){this[_0x6c82('0x2')][_0x6c82('0x29')](this[_0x6c82('0xb')],![],this[_0x6c82('0x2a')][_0x6c82('0x15')](this));};EmailImap[_0x6c82('0x18')][_0x6c82('0x2a')]=function(_0x5595c9,_0x5604ca){if(_0x5595c9){this[_0x6c82('0x14')](_0x5595c9,!![]);}else{this[_0x6c82('0x2b')](_0x6c82('0x2c'),_0x5604ca);this[_0x6c82('0x2d')]();}};EmailImap['prototype']['handleCloseBox']=function(_0x1f0855){if(_0x1f0855){this[_0x6c82('0x14')](_0x1f0855,!![]);}else{this[_0x6c82('0x2')][_0x6c82('0x11')]();}};EmailImap[_0x6c82('0x18')][_0x6c82('0x2d')]=function(){this['imap'][_0x6c82('0x2e')](['UNSEEN'],this[_0x6c82('0x2f')]['bind'](this));};EmailImap[_0x6c82('0x18')]['handleReadUnseen']=function(_0x30ee25,_0xd88f36){if(_0x30ee25){this[_0x6c82('0x14')](_0x30ee25,!![]);}else{if(_0xd88f36[_0x6c82('0x30')]){try{var _0x1f7cfc=this['imap'][_0x6c82('0x31')](_0xd88f36,{'bodies':'','markSeen':!![]});_0x1f7cfc['on'](_0x6c82('0x32'),this[_0x6c82('0x33')][_0x6c82('0x15')](this));_0x1f7cfc[_0x6c82('0xe')]('error',this[_0x6c82('0x34')]['bind'](this));_0x1f7cfc[_0x6c82('0xe')](_0x6c82('0x11'),this[_0x6c82('0x35')]['bind'](this));}catch(_0x5ceee3){logger[_0x6c82('0x13')](_0x5ceee3);}}else{this[_0x6c82('0x2')][_0x6c82('0x36')](!![],this['handleCloseBox']['bind'](this));}}};EmailImap[_0x6c82('0x18')]['handleFetchMessage']=function(_0x34232e){_0x34232e['on'](_0x6c82('0x37'),this[_0x6c82('0x38')][_0x6c82('0x15')](this));_0x34232e[_0x6c82('0xe')]('attributes',this[_0x6c82('0x39')][_0x6c82('0x15')](this));_0x34232e[_0x6c82('0xe')](_0x6c82('0x11'),this[_0x6c82('0x3a')][_0x6c82('0x15')](this));};EmailImap[_0x6c82('0x18')][_0x6c82('0x38')]=function(_0x4a4165){simpleParser(_0x4a4165,{'Iconv':Iconv},this[_0x6c82('0x3b')][_0x6c82('0x15')](this));};EmailImap[_0x6c82('0x18')][_0x6c82('0x39')]=function(){};EmailImap[_0x6c82('0x18')][_0x6c82('0x3a')]=function(){};EmailImap[_0x6c82('0x18')][_0x6c82('0x3b')]=function(_0x52b0b6,_0x1b1141){if(_0x52b0b6){logger[_0x6c82('0x13')](_0x52b0b6);}else{var _0x253d37=this;utils['parser'](this[_0x6c82('0xc')],_0x1b1141,function(_0x82e72e){_0x253d37[_0x6c82('0x2b')](_0x6c82('0x23'),_0x82e72e);});}};EmailImap[_0x6c82('0x18')][_0x6c82('0x35')]=function(){this[_0x6c82('0x2')][_0x6c82('0x36')](!![],this[_0x6c82('0x3c')][_0x6c82('0x15')](this));};EmailImap[_0x6c82('0x18')][_0x6c82('0x34')]=function(_0x3f6cf8){this[_0x6c82('0x14')](_0x3f6cf8);this[_0x6c82('0x2')][_0x6c82('0x36')](!![],this['handleCloseBox'][_0x6c82('0x15')](this));};EmailImap[_0x6c82('0x18')][_0x6c82('0x12')]=function(){this[_0x6c82('0x2b')](_0x6c82('0x11'));};EmailImap['prototype'][_0x6c82('0x14')]=function(_0x41062e,_0x19ce84){logger[_0x6c82('0x13')](_0x6c82('0x14'),this[_0x6c82('0xc')]['email'],JSON['stringify'](_0x41062e));var _0x3261a7='';if(_0x41062e){if(_0x41062e[_0x6c82('0x3d')]){_0x3261a7=_0x41062e[_0x6c82('0x3d')];}else{for(var _0x3e4a80 in _0x41062e){if(_0x41062e['hasOwnProperty'](_0x3e4a80)){_0x3261a7+=_[_0x6c82('0x3e')](_0x3e4a80)+':\x20'+_0x41062e[_0x3e4a80]+'\x0a';}}}}if(_0x19ce84){this[_0x6c82('0x2')][_0x6c82('0x11')]();}else{this['emit']('error',_0x3261a7);this[_0x6c82('0x2b')](_0x6c82('0x11'));}};module['exports']=EmailImap;