Built motion from commit (unavailable).|2.5.3
[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 _0x3489=['attributes','handleMessageAttributes','handleMessageEnd','handleMessageBody','handleSimpleParser','email','stringify','textCode','upperFirst','util','lodash','randomstring','mailparser','simpleParser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','mailbox','account','getAccount','imap','once','handleReady','end','handleEnd','bind','handleError','connect','prototype','connTimeout','isNil','authentication','user','password','host','port','tls','autotls','getHost','handleOpenBox','emit','box','readUnseen','search','UNSEEN','handleReadUnseen','handleFetchMessage','error','handleFetchError','handleFetchEnd','closeBox','handleCloseBox'];(function(_0x1e9a57,_0x102485){var _0x348e39=function(_0x6a45ca){while(--_0x6a45ca){_0x1e9a57['push'](_0x1e9a57['shift']());}};_0x348e39(++_0x102485);}(_0x3489,0x1ef));var _0x9348=function(_0x4c668a,_0x47dd1c){_0x4c668a=_0x4c668a-0x0;var _0x61d015=_0x3489[_0x4c668a];return _0x61d015;};'use strict';var fs=require('fs');var path=require('path');var util=require(_0x9348('0x0'));var Imap=require('imap');var _=require(_0x9348('0x1'));var rs=require(_0x9348('0x2'));var simpleParser=require(_0x9348('0x3'))[_0x9348('0x4')];var Iconv=require(_0x9348('0x5'))[_0x9348('0x6')];var EventEmitter=require('events')[_0x9348('0x7')];var utils=require(_0x9348('0x8'));var logger=require(_0x9348('0x9'))('email');function EmailImap(_0x41ba59,_0x30f7ae){this[_0x9348('0xa')]='INBOX';this[_0x9348('0xb')]=this[_0x9348('0xc')](_0x41ba59,_0x30f7ae);this[_0x9348('0xd')]=new Imap(this[_0x9348('0xb')]);this['imap'][_0x9348('0xe')]('ready',this[_0x9348('0xf')]['bind'](this));this[_0x9348('0xd')]['once'](_0x9348('0x10'),this[_0x9348('0x11')][_0x9348('0x12')](this));this[_0x9348('0xd')]['on']('error',this[_0x9348('0x13')]['bind'](this));this[_0x9348('0xd')][_0x9348('0x14')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0x9348('0x15')][_0x9348('0xc')]=function(_0x2ab184,_0x2a0956){var _0x203b70={'connTimeout':_0x2ab184[_0x9348('0x16')]?_0x2ab184['connTimeout']*0x3e8:0x2710,'authTimeout':_0x2ab184['authTimeout']?_0x2ab184['authTimeout']*0x3e8:0x1388};if(_[_0x9348('0x17')](_0x2ab184['service'])){if(_0x2ab184[_0x9348('0x18')]){_0x203b70[_0x9348('0x19')]=_0x2ab184[_0x9348('0x19')];_0x203b70[_0x9348('0x1a')]=_0x2ab184[_0x9348('0x1a')];}_0x203b70[_0x9348('0x1b')]=_0x2ab184[_0x9348('0x1b')];_0x203b70[_0x9348('0x1c')]=_0x2ab184['port']||0x3e1;if(_0x2ab184[_0x9348('0x1d')]){_0x203b70[_0x9348('0x1d')]=!![];}else{_0x203b70[_0x9348('0x1d')]=![];_0x203b70[_0x9348('0x1e')]='required';}}else{_0x203b70[_0x9348('0x19')]=_0x2ab184[_0x9348('0x19')];_0x203b70['password']=_0x2ab184[_0x9348('0x1a')];_0x203b70['host']=utils[_0x9348('0x1f')](_0x2ab184['service']);_0x203b70[_0x9348('0x1c')]=0x3e1;_0x203b70[_0x9348('0x1d')]=!![];}_0x203b70['email']=_0x2a0956||_0x2ab184[_0x9348('0x19')]||'anonymous@xcally.com';return _0x203b70;};EmailImap[_0x9348('0x15')][_0x9348('0xf')]=function(){this[_0x9348('0xd')]['openBox'](this[_0x9348('0xa')],![],this[_0x9348('0x20')][_0x9348('0x12')](this));};EmailImap[_0x9348('0x15')][_0x9348('0x20')]=function(_0x59142b,_0x26d59b){if(_0x59142b){this['handleError'](_0x59142b,!![]);}else{this[_0x9348('0x21')](_0x9348('0x22'),_0x26d59b);this[_0x9348('0x23')]();}};EmailImap[_0x9348('0x15')]['handleCloseBox']=function(_0x4787ca){if(_0x4787ca){this['handleError'](_0x4787ca,!![]);}else{this[_0x9348('0xd')]['end']();}};EmailImap[_0x9348('0x15')][_0x9348('0x23')]=function(){this['imap'][_0x9348('0x24')]([_0x9348('0x25')],this[_0x9348('0x26')][_0x9348('0x12')](this));};EmailImap[_0x9348('0x15')][_0x9348('0x26')]=function(_0x7d6e50,_0x3663de){if(_0x7d6e50){this[_0x9348('0x13')](_0x7d6e50,!![]);}else{if(_0x3663de['length']){try{var _0x224db7=this[_0x9348('0xd')]['fetch'](_0x3663de,{'bodies':'','markSeen':!![]});_0x224db7['on']('message',this[_0x9348('0x27')][_0x9348('0x12')](this));_0x224db7[_0x9348('0xe')](_0x9348('0x28'),this[_0x9348('0x29')]['bind'](this));_0x224db7[_0x9348('0xe')](_0x9348('0x10'),this[_0x9348('0x2a')][_0x9348('0x12')](this));}catch(_0x39d892){logger[_0x9348('0x28')](_0x39d892);}}else{this[_0x9348('0xd')][_0x9348('0x2b')](!![],this[_0x9348('0x2c')][_0x9348('0x12')](this));}}};EmailImap[_0x9348('0x15')][_0x9348('0x27')]=function(_0x4f6a3b,_0x4c67c3){_0x4f6a3b['on']('body',this['handleMessageBody']['bind'](this));_0x4f6a3b['once'](_0x9348('0x2d'),this[_0x9348('0x2e')][_0x9348('0x12')](this));_0x4f6a3b[_0x9348('0xe')](_0x9348('0x10'),this[_0x9348('0x2f')][_0x9348('0x12')](this));};EmailImap['prototype'][_0x9348('0x30')]=function(_0x33e0fd,_0x44c539){simpleParser(_0x33e0fd,{'Iconv':Iconv},this[_0x9348('0x31')]['bind'](this));};EmailImap['prototype']['handleMessageAttributes']=function(_0x3f5dca){};EmailImap[_0x9348('0x15')][_0x9348('0x2f')]=function(){};EmailImap[_0x9348('0x15')]['handleSimpleParser']=function(_0x3e56f6,_0x4f7731){if(_0x3e56f6){logger[_0x9348('0x28')](_0x3e56f6);}else{var _0x2b51ff=this;utils['parser'](this['account'],_0x4f7731,function(_0x1545d4){_0x2b51ff[_0x9348('0x21')]('email',_0x1545d4);});}};EmailImap[_0x9348('0x15')]['handleFetchEnd']=function(){this[_0x9348('0xd')]['closeBox'](!![],this[_0x9348('0x2c')]['bind'](this));};EmailImap[_0x9348('0x15')][_0x9348('0x29')]=function(_0x34b0eb){this['handleError'](_0x34b0eb);this[_0x9348('0xd')][_0x9348('0x2b')](!![],this[_0x9348('0x2c')][_0x9348('0x12')](this));};EmailImap[_0x9348('0x15')][_0x9348('0x11')]=function(){this['emit']('end');};EmailImap[_0x9348('0x15')]['handleError']=function(_0x513275,_0x4cf8f3){logger['error'](_0x9348('0x13'),this[_0x9348('0xb')][_0x9348('0x32')],JSON[_0x9348('0x33')](_0x513275));var _0x6075b7='';if(_0x513275){if(_0x513275[_0x9348('0x34')]){_0x6075b7=_0x513275[_0x9348('0x34')];}else{for(var _0x12ec32 in _0x513275){if(_0x513275['hasOwnProperty'](_0x12ec32)){_0x6075b7+=_[_0x9348('0x35')](_0x12ec32)+':\x20'+_0x513275[_0x12ec32]+'\x0a';}}}}if(_0x4cf8f3){this[_0x9348('0xd')][_0x9348('0x10')]();}else{this[_0x9348('0x21')]('error',_0x6075b7);this['emit'](_0x9348('0x10'));}};module['exports']=EmailImap;