41de4666ad105c25e22c1d20667545f36968b4d5
[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 _0x5418=['lodash','randomstring','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','../../../config/logger','email','INBOX','account','getAccount','once','ready','handleReady','bind','error','handleError','connect','inherits','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','anonymous@xcally.com','openBox','mailbox','handleOpenBox','prototype','emit','box','readUnseen','end','search','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','closeBox','handleCloseBox','attributes','handleMessageAttributes','handleMessageBody','handleSimpleParser','handleEnd','stringify','hasOwnProperty','upperFirst','exports','path','imap'];(function(_0x14beb3,_0x546cf5){var _0x3284af=function(_0x43dbd2){while(--_0x43dbd2){_0x14beb3['push'](_0x14beb3['shift']());}};_0x3284af(++_0x546cf5);}(_0x5418,0x17e));var _0x8541=function(_0x1fb17a,_0x5dc8ea){_0x1fb17a=_0x1fb17a-0x0;var _0x5e132c=_0x5418[_0x1fb17a];return _0x5e132c;};'use strict';var fs=require('fs');var path=require(_0x8541('0x0'));var util=require('util');var Imap=require(_0x8541('0x1'));var _=require(_0x8541('0x2'));var rs=require(_0x8541('0x3'));var simpleParser=require(_0x8541('0x4'))[_0x8541('0x5')];var Iconv=require(_0x8541('0x6'))[_0x8541('0x7')];var EventEmitter=require(_0x8541('0x8'))[_0x8541('0x9')];var utils=require('./utils');var logger=require(_0x8541('0xa'))(_0x8541('0xb'));function EmailImap(_0x27f2ef,_0x2d36fa){this['mailbox']=_0x8541('0xc');this[_0x8541('0xd')]=this[_0x8541('0xe')](_0x27f2ef,_0x2d36fa);this['imap']=new Imap(this[_0x8541('0xd')]);this[_0x8541('0x1')][_0x8541('0xf')](_0x8541('0x10'),this[_0x8541('0x11')][_0x8541('0x12')](this));this[_0x8541('0x1')]['once']('end',this['handleEnd'][_0x8541('0x12')](this));this['imap']['on'](_0x8541('0x13'),this[_0x8541('0x14')]['bind'](this));this[_0x8541('0x1')][_0x8541('0x15')]();}util[_0x8541('0x16')](EmailImap,EventEmitter);EmailImap['prototype'][_0x8541('0xe')]=function(_0x4165fd,_0x2b7751){var _0x4338aa={'connTimeout':_0x4165fd[_0x8541('0x17')]?_0x4165fd['connTimeout']*0x3e8:0x2710,'authTimeout':_0x4165fd['authTimeout']?_0x4165fd[_0x8541('0x18')]*0x3e8:0x1388};if(_[_0x8541('0x19')](_0x4165fd[_0x8541('0x1a')])){if(_0x4165fd[_0x8541('0x1b')]){_0x4338aa[_0x8541('0x1c')]=_0x4165fd[_0x8541('0x1c')];_0x4338aa[_0x8541('0x1d')]=_0x4165fd['password'];}_0x4338aa[_0x8541('0x1e')]=_0x4165fd[_0x8541('0x1e')];_0x4338aa[_0x8541('0x1f')]=_0x4165fd[_0x8541('0x1f')]||0x3e1;if(_0x4165fd[_0x8541('0x20')]){_0x4338aa[_0x8541('0x20')]=!![];}else{_0x4338aa['tls']=![];_0x4338aa[_0x8541('0x21')]=_0x8541('0x22');}}else{_0x4338aa[_0x8541('0x1c')]=_0x4165fd[_0x8541('0x1c')];_0x4338aa['password']=_0x4165fd[_0x8541('0x1d')];_0x4338aa[_0x8541('0x1e')]=utils[_0x8541('0x23')](_0x4165fd[_0x8541('0x1a')]);_0x4338aa[_0x8541('0x1f')]=0x3e1;_0x4338aa[_0x8541('0x20')]=!![];}_0x4338aa[_0x8541('0xb')]=_0x2b7751||_0x4165fd['user']||_0x8541('0x24');return _0x4338aa;};EmailImap['prototype']['handleReady']=function(){this['imap'][_0x8541('0x25')](this[_0x8541('0x26')],![],this[_0x8541('0x27')][_0x8541('0x12')](this));};EmailImap[_0x8541('0x28')]['handleOpenBox']=function(_0xc1dcde,_0x59280a){if(_0xc1dcde){this[_0x8541('0x14')](_0xc1dcde,!![]);}else{this[_0x8541('0x29')](_0x8541('0x2a'),_0x59280a);this[_0x8541('0x2b')]();}};EmailImap['prototype']['handleCloseBox']=function(_0x34eb82){if(_0x34eb82){this[_0x8541('0x14')](_0x34eb82,!![]);}else{this[_0x8541('0x1')][_0x8541('0x2c')]();}};EmailImap[_0x8541('0x28')]['readUnseen']=function(){this[_0x8541('0x1')][_0x8541('0x2d')]([_0x8541('0x2e')],this[_0x8541('0x2f')][_0x8541('0x12')](this));};EmailImap[_0x8541('0x28')]['handleReadUnseen']=function(_0x18468a,_0x27c546){if(_0x18468a){this[_0x8541('0x14')](_0x18468a,!![]);}else{if(_0x27c546[_0x8541('0x30')]){try{var _0x300f3b=this[_0x8541('0x1')][_0x8541('0x31')](_0x27c546,{'bodies':'','markSeen':!![]});_0x300f3b['on'](_0x8541('0x32'),this[_0x8541('0x33')]['bind'](this));_0x300f3b['once'](_0x8541('0x13'),this[_0x8541('0x34')][_0x8541('0x12')](this));_0x300f3b['once'](_0x8541('0x2c'),this['handleFetchEnd'][_0x8541('0x12')](this));}catch(_0x1fe114){logger[_0x8541('0x13')](_0x1fe114);}}else{this['imap'][_0x8541('0x35')](!![],this[_0x8541('0x36')][_0x8541('0x12')](this));}}};EmailImap[_0x8541('0x28')][_0x8541('0x33')]=function(_0xa248e7,_0x30ce9d){_0xa248e7['on']('body',this['handleMessageBody'][_0x8541('0x12')](this));_0xa248e7[_0x8541('0xf')](_0x8541('0x37'),this[_0x8541('0x38')]['bind'](this));_0xa248e7[_0x8541('0xf')](_0x8541('0x2c'),this['handleMessageEnd']['bind'](this));};EmailImap[_0x8541('0x28')][_0x8541('0x39')]=function(_0x45fdcd,_0x217bfa){simpleParser(_0x45fdcd,{'Iconv':Iconv},this[_0x8541('0x3a')][_0x8541('0x12')](this));};EmailImap[_0x8541('0x28')][_0x8541('0x38')]=function(_0x19fd82){};EmailImap[_0x8541('0x28')]['handleMessageEnd']=function(){};EmailImap['prototype'][_0x8541('0x3a')]=function(_0x130126,_0x2c7e29){if(_0x130126){logger[_0x8541('0x13')](_0x130126);}else{var _0x50dd01=this;utils['parser'](this[_0x8541('0xd')],_0x2c7e29,function(_0x3d0b46){_0x50dd01['emit'](_0x8541('0xb'),_0x3d0b46);});}};EmailImap[_0x8541('0x28')]['handleFetchEnd']=function(){this[_0x8541('0x1')][_0x8541('0x35')](!![],this['handleCloseBox']['bind'](this));};EmailImap[_0x8541('0x28')][_0x8541('0x34')]=function(_0x21479d){this['handleError'](_0x21479d);this[_0x8541('0x1')][_0x8541('0x35')](!![],this[_0x8541('0x36')][_0x8541('0x12')](this));};EmailImap['prototype'][_0x8541('0x3b')]=function(){this[_0x8541('0x29')](_0x8541('0x2c'));};EmailImap['prototype'][_0x8541('0x14')]=function(_0x30ca44,_0x584d4a){logger[_0x8541('0x13')](_0x8541('0x14'),this[_0x8541('0xd')][_0x8541('0xb')],JSON[_0x8541('0x3c')](_0x30ca44));var _0x443193='';if(_0x30ca44){if(_0x30ca44['textCode']){_0x443193=_0x30ca44['textCode'];}else{for(var _0x318239 in _0x30ca44){if(_0x30ca44[_0x8541('0x3d')](_0x318239)){_0x443193+=_[_0x8541('0x3e')](_0x318239)+':\x20'+_0x30ca44[_0x318239]+'\x0a';}}}}if(_0x584d4a){this[_0x8541('0x1')]['end']();}else{this[_0x8541('0x29')](_0x8541('0x13'),_0x443193);this['emit']('end');}};module[_0x8541('0x3f')]=EmailImap;