1a76648bfa32895fe3df240e646a47d20b890b57
[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 _0x074c=['email','anonymous@xcally.com','openBox','handleOpenBox','box','readUnseen','handleCloseBox','search','handleReadUnseen','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','body','handleMessageBody','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','closeBox','handleEnd','emit','stringify','textCode','hasOwnProperty','exports','path','util','lodash','randomstring','mailparser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','mailbox','INBOX','account','getAccount','imap','once','ready','handleReady','end','bind','error','handleError','connect','inherits','prototype','connTimeout','authTimeout','user','password','host','port','tls','autotls','required','getHost','service'];(function(_0x1ab937,_0x54f9c9){var _0x5d8f8c=function(_0x6373e8){while(--_0x6373e8){_0x1ab937['push'](_0x1ab937['shift']());}};_0x5d8f8c(++_0x54f9c9);}(_0x074c,0x99));var _0xc074=function(_0x31a16a,_0x1d60e3){_0x31a16a=_0x31a16a-0x0;var _0x21c892=_0x074c[_0x31a16a];return _0x21c892;};'use strict';var fs=require('fs');var path=require(_0xc074('0x0'));var util=require(_0xc074('0x1'));var Imap=require('imap');var _=require(_0xc074('0x2'));var rs=require(_0xc074('0x3'));var simpleParser=require(_0xc074('0x4'))['simpleParser'];var Iconv=require(_0xc074('0x5'))[_0xc074('0x6')];var EventEmitter=require('events')[_0xc074('0x7')];var utils=require(_0xc074('0x8'));var logger=require(_0xc074('0x9'))('email');function EmailImap(_0x42e2eb,_0x4b2429){this[_0xc074('0xa')]=_0xc074('0xb');this[_0xc074('0xc')]=this[_0xc074('0xd')](_0x42e2eb,_0x4b2429);this[_0xc074('0xe')]=new Imap(this[_0xc074('0xc')]);this[_0xc074('0xe')][_0xc074('0xf')](_0xc074('0x10'),this[_0xc074('0x11')]['bind'](this));this[_0xc074('0xe')][_0xc074('0xf')](_0xc074('0x12'),this['handleEnd'][_0xc074('0x13')](this));this['imap']['on'](_0xc074('0x14'),this[_0xc074('0x15')][_0xc074('0x13')](this));this[_0xc074('0xe')][_0xc074('0x16')]();}util[_0xc074('0x17')](EmailImap,EventEmitter);EmailImap[_0xc074('0x18')][_0xc074('0xd')]=function(_0x4e78e8,_0xbbd543){var _0x5db147={'connTimeout':_0x4e78e8[_0xc074('0x19')]?_0x4e78e8['connTimeout']*0x3e8:0x2710,'authTimeout':_0x4e78e8[_0xc074('0x1a')]?_0x4e78e8['authTimeout']*0x3e8:0x1388};if(_['isNil'](_0x4e78e8['service'])){if(_0x4e78e8['authentication']){_0x5db147[_0xc074('0x1b')]=_0x4e78e8['user'];_0x5db147[_0xc074('0x1c')]=_0x4e78e8[_0xc074('0x1c')];}_0x5db147[_0xc074('0x1d')]=_0x4e78e8[_0xc074('0x1d')];_0x5db147[_0xc074('0x1e')]=_0x4e78e8[_0xc074('0x1e')]||0x3e1;if(_0x4e78e8[_0xc074('0x1f')]){_0x5db147[_0xc074('0x1f')]=!![];}else{_0x5db147[_0xc074('0x1f')]=![];_0x5db147[_0xc074('0x20')]=_0xc074('0x21');}}else{_0x5db147['user']=_0x4e78e8['user'];_0x5db147[_0xc074('0x1c')]=_0x4e78e8['password'];_0x5db147['host']=utils[_0xc074('0x22')](_0x4e78e8[_0xc074('0x23')]);_0x5db147[_0xc074('0x1e')]=0x3e1;_0x5db147[_0xc074('0x1f')]=!![];}_0x5db147[_0xc074('0x24')]=_0xbbd543||_0x4e78e8[_0xc074('0x1b')]||_0xc074('0x25');return _0x5db147;};EmailImap[_0xc074('0x18')][_0xc074('0x11')]=function(){this[_0xc074('0xe')][_0xc074('0x26')](this[_0xc074('0xa')],![],this[_0xc074('0x27')][_0xc074('0x13')](this));};EmailImap['prototype'][_0xc074('0x27')]=function(_0x4fadb8,_0x171bef){if(_0x4fadb8){this[_0xc074('0x15')](_0x4fadb8,!![]);}else{this['emit'](_0xc074('0x28'),_0x171bef);this[_0xc074('0x29')]();}};EmailImap[_0xc074('0x18')][_0xc074('0x2a')]=function(_0x1c5482){if(_0x1c5482){this[_0xc074('0x15')](_0x1c5482,!![]);}else{this[_0xc074('0xe')][_0xc074('0x12')]();}};EmailImap[_0xc074('0x18')]['readUnseen']=function(){this[_0xc074('0xe')][_0xc074('0x2b')](['UNSEEN'],this[_0xc074('0x2c')][_0xc074('0x13')](this));};EmailImap[_0xc074('0x18')][_0xc074('0x2c')]=function(_0x316c3b,_0x3e1671){if(_0x316c3b){this[_0xc074('0x15')](_0x316c3b,!![]);}else{if(_0x3e1671['length']){try{var _0x312fe9=this[_0xc074('0xe')][_0xc074('0x2d')](_0x3e1671,{'bodies':'','markSeen':!![]});_0x312fe9['on'](_0xc074('0x2e'),this[_0xc074('0x2f')][_0xc074('0x13')](this));_0x312fe9[_0xc074('0xf')](_0xc074('0x14'),this[_0xc074('0x30')][_0xc074('0x13')](this));_0x312fe9[_0xc074('0xf')](_0xc074('0x12'),this[_0xc074('0x31')][_0xc074('0x13')](this));}catch(_0x4ab328){logger['error'](_0x4ab328);}}else{this[_0xc074('0xe')]['closeBox'](!![],this[_0xc074('0x2a')][_0xc074('0x13')](this));}}};EmailImap['prototype']['handleFetchMessage']=function(_0x2467ab,_0x556272){_0x2467ab['on'](_0xc074('0x32'),this[_0xc074('0x33')][_0xc074('0x13')](this));_0x2467ab[_0xc074('0xf')]('attributes',this[_0xc074('0x34')]['bind'](this));_0x2467ab[_0xc074('0xf')]('end',this[_0xc074('0x35')][_0xc074('0x13')](this));};EmailImap[_0xc074('0x18')][_0xc074('0x33')]=function(_0x2ae777,_0x1dd7b4){simpleParser(_0x2ae777,{'Iconv':Iconv},this[_0xc074('0x36')]['bind'](this));};EmailImap['prototype']['handleMessageAttributes']=function(_0x17af2f){};EmailImap[_0xc074('0x18')][_0xc074('0x35')]=function(){};EmailImap[_0xc074('0x18')][_0xc074('0x36')]=function(_0x45511e,_0x39556e){if(_0x45511e){logger['error'](_0x45511e);}else{var _0x371fab=this;utils[_0xc074('0x37')](this[_0xc074('0xc')],_0x39556e,function(_0x347e87){_0x371fab['emit'](_0xc074('0x24'),_0x347e87);});}};EmailImap[_0xc074('0x18')]['handleFetchEnd']=function(){this[_0xc074('0xe')]['closeBox'](!![],this['handleCloseBox'][_0xc074('0x13')](this));};EmailImap[_0xc074('0x18')][_0xc074('0x30')]=function(_0xbb9120){this['handleError'](_0xbb9120);this[_0xc074('0xe')][_0xc074('0x38')](!![],this[_0xc074('0x2a')]['bind'](this));};EmailImap[_0xc074('0x18')][_0xc074('0x39')]=function(){this[_0xc074('0x3a')](_0xc074('0x12'));};EmailImap['prototype'][_0xc074('0x15')]=function(_0x31c3ae,_0x4f52f1){logger[_0xc074('0x14')](_0xc074('0x15'),this[_0xc074('0xc')][_0xc074('0x24')],JSON[_0xc074('0x3b')](_0x31c3ae));var _0x5e3526='';if(_0x31c3ae){if(_0x31c3ae[_0xc074('0x3c')]){_0x5e3526=_0x31c3ae[_0xc074('0x3c')];}else{for(var _0xa006b9 in _0x31c3ae){if(_0x31c3ae[_0xc074('0x3d')](_0xa006b9)){_0x5e3526+=_['upperFirst'](_0xa006b9)+':\x20'+_0x31c3ae[_0xa006b9]+'\x0a';}}}}if(_0x4f52f1){this[_0xc074('0xe')][_0xc074('0x12')]();}else{this[_0xc074('0x3a')]('error',_0x5e3526);this[_0xc074('0x3a')](_0xc074('0x12'));}};module[_0xc074('0x3e')]=EmailImap;