Built motion from commit (unavailable).|2.5.4
[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 _0x2a4f=['length','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','error','closeBox','handleCloseBox','handleMessageBody','attributes','handleMessageAttributes','handleSimpleParser','handleMessageEnd','parser','account','emit','textCode','hasOwnProperty','upperFirst','exports','path','imap','lodash','mailparser','iconv','events','./utils','../../../config/logger','email','INBOX','getAccount','ready','handleReady','once','end','handleEnd','handleError','bind','connect','inherits','prototype','connTimeout','authTimeout','isNil','service','user','password','host','port','tls','autotls','openBox','handleOpenBox','box','readUnseen','search','handleReadUnseen'];(function(_0x2d6138,_0x219734){var _0x55eb00=function(_0xff8f6){while(--_0xff8f6){_0x2d6138['push'](_0x2d6138['shift']());}};_0x55eb00(++_0x219734);}(_0x2a4f,0xfd));var _0xf2a4=function(_0x43037d,_0x36c76f){_0x43037d=_0x43037d-0x0;var _0x13d7e6=_0x2a4f[_0x43037d];return _0x13d7e6;};'use strict';var fs=require('fs');var path=require(_0xf2a4('0x0'));var util=require('util');var Imap=require(_0xf2a4('0x1'));var _=require(_0xf2a4('0x2'));var rs=require('randomstring');var simpleParser=require(_0xf2a4('0x3'))['simpleParser'];var Iconv=require(_0xf2a4('0x4'))['Iconv'];var EventEmitter=require(_0xf2a4('0x5'))['EventEmitter'];var utils=require(_0xf2a4('0x6'));var logger=require(_0xf2a4('0x7'))(_0xf2a4('0x8'));function EmailImap(_0x3d7cfc,_0x5bb1f1){this['mailbox']=_0xf2a4('0x9');this['account']=this[_0xf2a4('0xa')](_0x3d7cfc,_0x5bb1f1);this[_0xf2a4('0x1')]=new Imap(this['account']);this[_0xf2a4('0x1')]['once'](_0xf2a4('0xb'),this[_0xf2a4('0xc')]['bind'](this));this[_0xf2a4('0x1')][_0xf2a4('0xd')](_0xf2a4('0xe'),this[_0xf2a4('0xf')]['bind'](this));this[_0xf2a4('0x1')]['on']('error',this[_0xf2a4('0x10')][_0xf2a4('0x11')](this));this[_0xf2a4('0x1')][_0xf2a4('0x12')]();}util[_0xf2a4('0x13')](EmailImap,EventEmitter);EmailImap[_0xf2a4('0x14')][_0xf2a4('0xa')]=function(_0x4e67a7,_0x5da05e){var _0x523a1c={'connTimeout':_0x4e67a7[_0xf2a4('0x15')]?_0x4e67a7['connTimeout']*0x3e8:0x2710,'authTimeout':_0x4e67a7[_0xf2a4('0x16')]?_0x4e67a7[_0xf2a4('0x16')]*0x3e8:0x1388};if(_[_0xf2a4('0x17')](_0x4e67a7[_0xf2a4('0x18')])){if(_0x4e67a7['authentication']){_0x523a1c[_0xf2a4('0x19')]=_0x4e67a7[_0xf2a4('0x19')];_0x523a1c[_0xf2a4('0x1a')]=_0x4e67a7[_0xf2a4('0x1a')];}_0x523a1c[_0xf2a4('0x1b')]=_0x4e67a7['host'];_0x523a1c[_0xf2a4('0x1c')]=_0x4e67a7[_0xf2a4('0x1c')]||0x3e1;if(_0x4e67a7[_0xf2a4('0x1d')]){_0x523a1c['tls']=!![];}else{_0x523a1c[_0xf2a4('0x1d')]=![];_0x523a1c[_0xf2a4('0x1e')]='required';}}else{_0x523a1c[_0xf2a4('0x19')]=_0x4e67a7[_0xf2a4('0x19')];_0x523a1c[_0xf2a4('0x1a')]=_0x4e67a7[_0xf2a4('0x1a')];_0x523a1c[_0xf2a4('0x1b')]=utils['getHost'](_0x4e67a7[_0xf2a4('0x18')]);_0x523a1c[_0xf2a4('0x1c')]=0x3e1;_0x523a1c[_0xf2a4('0x1d')]=!![];}_0x523a1c[_0xf2a4('0x8')]=_0x5da05e||_0x4e67a7['user']||'anonymous@xcally.com';return _0x523a1c;};EmailImap[_0xf2a4('0x14')][_0xf2a4('0xc')]=function(){this[_0xf2a4('0x1')][_0xf2a4('0x1f')](this['mailbox'],![],this[_0xf2a4('0x20')][_0xf2a4('0x11')](this));};EmailImap['prototype']['handleOpenBox']=function(_0x5f6f21,_0x3665b4){if(_0x5f6f21){this[_0xf2a4('0x10')](_0x5f6f21,!![]);}else{this['emit'](_0xf2a4('0x21'),_0x3665b4);this['readUnseen']();}};EmailImap[_0xf2a4('0x14')]['handleCloseBox']=function(_0x1d4fd1){if(_0x1d4fd1){this[_0xf2a4('0x10')](_0x1d4fd1,!![]);}else{this[_0xf2a4('0x1')][_0xf2a4('0xe')]();}};EmailImap[_0xf2a4('0x14')][_0xf2a4('0x22')]=function(){this[_0xf2a4('0x1')][_0xf2a4('0x23')](['UNSEEN'],this[_0xf2a4('0x24')]['bind'](this));};EmailImap[_0xf2a4('0x14')][_0xf2a4('0x24')]=function(_0xf25c0f,_0x43f4b4){if(_0xf25c0f){this[_0xf2a4('0x10')](_0xf25c0f,!![]);}else{if(_0x43f4b4[_0xf2a4('0x25')]){try{var _0x50adeb=this['imap'][_0xf2a4('0x26')](_0x43f4b4,{'bodies':'','markSeen':!![]});_0x50adeb['on'](_0xf2a4('0x27'),this[_0xf2a4('0x28')][_0xf2a4('0x11')](this));_0x50adeb['once']('error',this[_0xf2a4('0x29')][_0xf2a4('0x11')](this));_0x50adeb['once']('end',this[_0xf2a4('0x2a')]['bind'](this));}catch(_0x80bc67){logger[_0xf2a4('0x2b')](_0x80bc67);}}else{this[_0xf2a4('0x1')][_0xf2a4('0x2c')](!![],this[_0xf2a4('0x2d')]['bind'](this));}}};EmailImap[_0xf2a4('0x14')][_0xf2a4('0x28')]=function(_0x429e37,_0x4a7a64){_0x429e37['on']('body',this[_0xf2a4('0x2e')][_0xf2a4('0x11')](this));_0x429e37['once'](_0xf2a4('0x2f'),this[_0xf2a4('0x30')][_0xf2a4('0x11')](this));_0x429e37[_0xf2a4('0xd')](_0xf2a4('0xe'),this['handleMessageEnd']['bind'](this));};EmailImap[_0xf2a4('0x14')][_0xf2a4('0x2e')]=function(_0x35f65b,_0x28a881){simpleParser(_0x35f65b,{'Iconv':Iconv},this[_0xf2a4('0x31')][_0xf2a4('0x11')](this));};EmailImap[_0xf2a4('0x14')]['handleMessageAttributes']=function(_0x2c99df){};EmailImap[_0xf2a4('0x14')][_0xf2a4('0x32')]=function(){};EmailImap[_0xf2a4('0x14')]['handleSimpleParser']=function(_0x27b3e8,_0xbf61f9){if(_0x27b3e8){logger[_0xf2a4('0x2b')](_0x27b3e8);}else{var _0x466d9d=this;utils[_0xf2a4('0x33')](this[_0xf2a4('0x34')],_0xbf61f9,function(_0x5ec2b4){_0x466d9d['emit'](_0xf2a4('0x8'),_0x5ec2b4);});}};EmailImap['prototype'][_0xf2a4('0x2a')]=function(){this[_0xf2a4('0x1')][_0xf2a4('0x2c')](!![],this['handleCloseBox'][_0xf2a4('0x11')](this));};EmailImap[_0xf2a4('0x14')][_0xf2a4('0x29')]=function(_0x1bb4f1){this[_0xf2a4('0x10')](_0x1bb4f1);this[_0xf2a4('0x1')][_0xf2a4('0x2c')](!![],this[_0xf2a4('0x2d')]['bind'](this));};EmailImap[_0xf2a4('0x14')][_0xf2a4('0xf')]=function(){this[_0xf2a4('0x35')]('end');};EmailImap['prototype'][_0xf2a4('0x10')]=function(_0x62eb18,_0x2840e1){logger[_0xf2a4('0x2b')]('handleError',this[_0xf2a4('0x34')]['email'],JSON['stringify'](_0x62eb18));var _0x3e9d79='';if(_0x62eb18){if(_0x62eb18[_0xf2a4('0x36')]){_0x3e9d79=_0x62eb18[_0xf2a4('0x36')];}else{for(var _0x1a6834 in _0x62eb18){if(_0x62eb18[_0xf2a4('0x37')](_0x1a6834)){_0x3e9d79+=_[_0xf2a4('0x38')](_0x1a6834)+':\x20'+_0x62eb18[_0x1a6834]+'\x0a';}}}}if(_0x2840e1){this[_0xf2a4('0x1')][_0xf2a4('0xe')]();}else{this[_0xf2a4('0x35')](_0xf2a4('0x2b'),_0x3e9d79);this[_0xf2a4('0x35')]('end');}};module[_0xf2a4('0x39')]=EmailImap;