Built motion from commit (unavailable).|2.4.15
[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 _0x9eba=['connect','inherits','prototype','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','readUnseen','handleCloseBox','handleReadUnseen','fetch','message','handleFetchMessage','error','handleFetchError','handleFetchEnd','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleSimpleParser','handleMessageEnd','parser','emit','stringify','textCode','hasOwnProperty','upperFirst','path','util','imap','lodash','randomstring','simpleParser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX','account','getAccount','once','handleReady','end','handleEnd','bind','handleError'];(function(_0x4ac7f0,_0x2a48bf){var _0x2ecd89=function(_0x140d29){while(--_0x140d29){_0x4ac7f0['push'](_0x4ac7f0['shift']());}};_0x2ecd89(++_0x2a48bf);}(_0x9eba,0x9e));var _0xa9eb=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x9eba[_0x3bf83f];return _0x22c4a9;};'use strict';var fs=require('fs');var path=require(_0xa9eb('0x0'));var util=require(_0xa9eb('0x1'));var Imap=require(_0xa9eb('0x2'));var _=require(_0xa9eb('0x3'));var rs=require(_0xa9eb('0x4'));var simpleParser=require('mailparser')[_0xa9eb('0x5')];var Iconv=require(_0xa9eb('0x6'))[_0xa9eb('0x7')];var EventEmitter=require('events')[_0xa9eb('0x8')];var utils=require(_0xa9eb('0x9'));var logger=require(_0xa9eb('0xa'))(_0xa9eb('0xb'));function EmailImap(_0x11b59,_0x4637d3){this[_0xa9eb('0xc')]=_0xa9eb('0xd');this[_0xa9eb('0xe')]=this[_0xa9eb('0xf')](_0x11b59,_0x4637d3);this[_0xa9eb('0x2')]=new Imap(this['account']);this[_0xa9eb('0x2')][_0xa9eb('0x10')]('ready',this[_0xa9eb('0x11')]['bind'](this));this['imap']['once'](_0xa9eb('0x12'),this[_0xa9eb('0x13')][_0xa9eb('0x14')](this));this['imap']['on']('error',this[_0xa9eb('0x15')][_0xa9eb('0x14')](this));this['imap'][_0xa9eb('0x16')]();}util[_0xa9eb('0x17')](EmailImap,EventEmitter);EmailImap[_0xa9eb('0x18')][_0xa9eb('0xf')]=function(_0x236f0e,_0x52bed6){var _0x423616={'connTimeout':_0x236f0e[_0xa9eb('0x19')]?_0x236f0e[_0xa9eb('0x19')]*0x3e8:0x2710,'authTimeout':_0x236f0e[_0xa9eb('0x1a')]?_0x236f0e[_0xa9eb('0x1a')]*0x3e8:0x1388};if(_[_0xa9eb('0x1b')](_0x236f0e[_0xa9eb('0x1c')])){if(_0x236f0e[_0xa9eb('0x1d')]){_0x423616[_0xa9eb('0x1e')]=_0x236f0e[_0xa9eb('0x1e')];_0x423616[_0xa9eb('0x1f')]=_0x236f0e[_0xa9eb('0x1f')];}_0x423616[_0xa9eb('0x20')]=_0x236f0e[_0xa9eb('0x20')];_0x423616[_0xa9eb('0x21')]=_0x236f0e[_0xa9eb('0x21')]||0x3e1;if(_0x236f0e[_0xa9eb('0x22')]){_0x423616[_0xa9eb('0x22')]=!![];}else{_0x423616['tls']=![];_0x423616[_0xa9eb('0x23')]=_0xa9eb('0x24');}}else{_0x423616[_0xa9eb('0x1e')]=_0x236f0e[_0xa9eb('0x1e')];_0x423616[_0xa9eb('0x1f')]=_0x236f0e['password'];_0x423616[_0xa9eb('0x20')]=utils[_0xa9eb('0x25')](_0x236f0e[_0xa9eb('0x1c')]);_0x423616[_0xa9eb('0x21')]=0x3e1;_0x423616[_0xa9eb('0x22')]=!![];}_0x423616[_0xa9eb('0xb')]=_0x52bed6||_0x236f0e[_0xa9eb('0x1e')]||'anonymous@xcally.com';return _0x423616;};EmailImap['prototype'][_0xa9eb('0x11')]=function(){this['imap']['openBox'](this[_0xa9eb('0xc')],![],this['handleOpenBox']['bind'](this));};EmailImap[_0xa9eb('0x18')]['handleOpenBox']=function(_0x11eb9e,_0x4ed955){if(_0x11eb9e){this[_0xa9eb('0x15')](_0x11eb9e,!![]);}else{this['emit']('box',_0x4ed955);this[_0xa9eb('0x26')]();}};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x27')]=function(_0x2b3824){if(_0x2b3824){this[_0xa9eb('0x15')](_0x2b3824,!![]);}else{this[_0xa9eb('0x2')][_0xa9eb('0x12')]();}};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x26')]=function(){this[_0xa9eb('0x2')]['search'](['UNSEEN'],this[_0xa9eb('0x28')][_0xa9eb('0x14')](this));};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x28')]=function(_0x11fb3e,_0x304b71){if(_0x11fb3e){this[_0xa9eb('0x15')](_0x11fb3e,!![]);}else{if(_0x304b71['length']){try{var _0x44f823=this['imap'][_0xa9eb('0x29')](_0x304b71,{'bodies':'','markSeen':!![]});_0x44f823['on'](_0xa9eb('0x2a'),this[_0xa9eb('0x2b')]['bind'](this));_0x44f823[_0xa9eb('0x10')](_0xa9eb('0x2c'),this[_0xa9eb('0x2d')]['bind'](this));_0x44f823[_0xa9eb('0x10')]('end',this[_0xa9eb('0x2e')][_0xa9eb('0x14')](this));}catch(_0x578e1d){logger[_0xa9eb('0x2c')](_0x578e1d);}}else{this['imap'][_0xa9eb('0x2f')](!![],this[_0xa9eb('0x27')][_0xa9eb('0x14')](this));}}};EmailImap[_0xa9eb('0x18')]['handleFetchMessage']=function(_0x3ffc17,_0x2394fc){_0x3ffc17['on'](_0xa9eb('0x30'),this[_0xa9eb('0x31')][_0xa9eb('0x14')](this));_0x3ffc17[_0xa9eb('0x10')](_0xa9eb('0x32'),this[_0xa9eb('0x33')][_0xa9eb('0x14')](this));_0x3ffc17[_0xa9eb('0x10')](_0xa9eb('0x12'),this['handleMessageEnd'][_0xa9eb('0x14')](this));};EmailImap[_0xa9eb('0x18')]['handleMessageBody']=function(_0x17a9e0,_0x50a7f3){simpleParser(_0x17a9e0,{'Iconv':Iconv},this[_0xa9eb('0x34')][_0xa9eb('0x14')](this));};EmailImap['prototype'][_0xa9eb('0x33')]=function(_0x1bc06b){};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x35')]=function(){};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x34')]=function(_0x28dfc7,_0x491bda){if(_0x28dfc7){logger['error'](_0x28dfc7);}else{var _0x41ac2d=this;utils[_0xa9eb('0x36')](this['account'],_0x491bda,function(_0x5be75d){_0x41ac2d['emit'](_0xa9eb('0xb'),_0x5be75d);});}};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x2e')]=function(){this[_0xa9eb('0x2')][_0xa9eb('0x2f')](!![],this['handleCloseBox'][_0xa9eb('0x14')](this));};EmailImap[_0xa9eb('0x18')]['handleFetchError']=function(_0x2e2c90){this['handleError'](_0x2e2c90);this[_0xa9eb('0x2')][_0xa9eb('0x2f')](!![],this['handleCloseBox'][_0xa9eb('0x14')](this));};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x13')]=function(){this[_0xa9eb('0x37')]('end');};EmailImap[_0xa9eb('0x18')][_0xa9eb('0x15')]=function(_0x184024,_0x32ac7e){logger[_0xa9eb('0x2c')](_0xa9eb('0x15'),this[_0xa9eb('0xe')]['email'],JSON[_0xa9eb('0x38')](_0x184024));var _0x58b851='';if(_0x184024){if(_0x184024[_0xa9eb('0x39')]){_0x58b851=_0x184024[_0xa9eb('0x39')];}else{for(var _0x15e47d in _0x184024){if(_0x184024[_0xa9eb('0x3a')](_0x15e47d)){_0x58b851+=_[_0xa9eb('0x3b')](_0x15e47d)+':\x20'+_0x184024[_0x15e47d]+'\x0a';}}}}if(_0x32ac7e){this[_0xa9eb('0x2')][_0xa9eb('0x12')]();}else{this['emit'](_0xa9eb('0x2c'),_0x58b851);this['emit'](_0xa9eb('0x12'));}};module['exports']=EmailImap;