fe2989ab57d5a4d45482606e7b60903493da165f
[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 _0xc964=['hasOwnProperty','upperFirst','path','util','lodash','randomstring','mailparser','iconv','events','EventEmitter','./utils','../../../config/logger','email','INBOX','account','getAccount','imap','bind','once','handleEnd','error','handleError','inherits','prototype','connTimeout','authTimeout','isNil','authentication','user','password','host','port','tls','autotls','required','service','anonymous@xcally.com','handleReady','openBox','mailbox','handleOpenBox','box','readUnseen','handleCloseBox','end','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchEnd','closeBox','handleFetchMessage','handleMessageBody','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','emit','handleFetchError','stringify','textCode'];(function(_0x2d66cd,_0x591ac9){var _0x57c255=function(_0x33a59c){while(--_0x33a59c){_0x2d66cd['push'](_0x2d66cd['shift']());}};_0x57c255(++_0x591ac9);}(_0xc964,0x7e));var _0x4c96=function(_0x16d3c2,_0x5bf0c3){_0x16d3c2=_0x16d3c2-0x0;var _0x417d73=_0xc964[_0x16d3c2];return _0x417d73;};'use strict';var fs=require('fs');var path=require(_0x4c96('0x0'));var util=require(_0x4c96('0x1'));var Imap=require('imap');var _=require(_0x4c96('0x2'));var rs=require(_0x4c96('0x3'));var simpleParser=require(_0x4c96('0x4'))['simpleParser'];var Iconv=require(_0x4c96('0x5'))['Iconv'];var EventEmitter=require(_0x4c96('0x6'))[_0x4c96('0x7')];var utils=require(_0x4c96('0x8'));var logger=require(_0x4c96('0x9'))(_0x4c96('0xa'));function EmailImap(_0x1fa8a0,_0x4070a5){this['mailbox']=_0x4c96('0xb');this[_0x4c96('0xc')]=this[_0x4c96('0xd')](_0x1fa8a0,_0x4070a5);this['imap']=new Imap(this[_0x4c96('0xc')]);this[_0x4c96('0xe')]['once']('ready',this['handleReady'][_0x4c96('0xf')](this));this[_0x4c96('0xe')][_0x4c96('0x10')]('end',this[_0x4c96('0x11')]['bind'](this));this['imap']['on'](_0x4c96('0x12'),this[_0x4c96('0x13')][_0x4c96('0xf')](this));this['imap']['connect']();}util[_0x4c96('0x14')](EmailImap,EventEmitter);EmailImap[_0x4c96('0x15')][_0x4c96('0xd')]=function(_0x4d80c9,_0xe42458){var _0x334165={'connTimeout':_0x4d80c9[_0x4c96('0x16')]?_0x4d80c9[_0x4c96('0x16')]*0x3e8:0x2710,'authTimeout':_0x4d80c9[_0x4c96('0x17')]?_0x4d80c9[_0x4c96('0x17')]*0x3e8:0x1388};if(_[_0x4c96('0x18')](_0x4d80c9['service'])){if(_0x4d80c9[_0x4c96('0x19')]){_0x334165['user']=_0x4d80c9[_0x4c96('0x1a')];_0x334165['password']=_0x4d80c9[_0x4c96('0x1b')];}_0x334165['host']=_0x4d80c9[_0x4c96('0x1c')];_0x334165[_0x4c96('0x1d')]=_0x4d80c9[_0x4c96('0x1d')]||0x3e1;if(_0x4d80c9[_0x4c96('0x1e')]){_0x334165[_0x4c96('0x1e')]=!![];}else{_0x334165[_0x4c96('0x1e')]=![];_0x334165[_0x4c96('0x1f')]=_0x4c96('0x20');}}else{_0x334165[_0x4c96('0x1a')]=_0x4d80c9[_0x4c96('0x1a')];_0x334165[_0x4c96('0x1b')]=_0x4d80c9['password'];_0x334165['host']=utils['getHost'](_0x4d80c9[_0x4c96('0x21')]);_0x334165[_0x4c96('0x1d')]=0x3e1;_0x334165[_0x4c96('0x1e')]=!![];}_0x334165[_0x4c96('0xa')]=_0xe42458||_0x4d80c9[_0x4c96('0x1a')]||_0x4c96('0x22');return _0x334165;};EmailImap['prototype'][_0x4c96('0x23')]=function(){this[_0x4c96('0xe')][_0x4c96('0x24')](this[_0x4c96('0x25')],![],this[_0x4c96('0x26')][_0x4c96('0xf')](this));};EmailImap['prototype'][_0x4c96('0x26')]=function(_0x2bfd69,_0x4aeb36){if(_0x2bfd69){this[_0x4c96('0x13')](_0x2bfd69,!![]);}else{this['emit'](_0x4c96('0x27'),_0x4aeb36);this[_0x4c96('0x28')]();}};EmailImap[_0x4c96('0x15')][_0x4c96('0x29')]=function(_0x59a913){if(_0x59a913){this[_0x4c96('0x13')](_0x59a913,!![]);}else{this[_0x4c96('0xe')][_0x4c96('0x2a')]();}};EmailImap[_0x4c96('0x15')][_0x4c96('0x28')]=function(){this[_0x4c96('0xe')]['search']([_0x4c96('0x2b')],this[_0x4c96('0x2c')][_0x4c96('0xf')](this));};EmailImap[_0x4c96('0x15')][_0x4c96('0x2c')]=function(_0x1712c4,_0x4c5e1a){if(_0x1712c4){this['handleError'](_0x1712c4,!![]);}else{if(_0x4c5e1a[_0x4c96('0x2d')]){try{var _0x454252=this[_0x4c96('0xe')][_0x4c96('0x2e')](_0x4c5e1a,{'bodies':'','markSeen':!![]});_0x454252['on'](_0x4c96('0x2f'),this['handleFetchMessage'][_0x4c96('0xf')](this));_0x454252['once'](_0x4c96('0x12'),this['handleFetchError'][_0x4c96('0xf')](this));_0x454252[_0x4c96('0x10')](_0x4c96('0x2a'),this[_0x4c96('0x30')][_0x4c96('0xf')](this));}catch(_0x1faf24){logger[_0x4c96('0x12')](_0x1faf24);}}else{this[_0x4c96('0xe')][_0x4c96('0x31')](!![],this[_0x4c96('0x29')][_0x4c96('0xf')](this));}}};EmailImap[_0x4c96('0x15')][_0x4c96('0x32')]=function(_0xa1e751,_0x209274){_0xa1e751['on']('body',this[_0x4c96('0x33')][_0x4c96('0xf')](this));_0xa1e751[_0x4c96('0x10')]('attributes',this[_0x4c96('0x34')]['bind'](this));_0xa1e751[_0x4c96('0x10')]('end',this[_0x4c96('0x35')][_0x4c96('0xf')](this));};EmailImap[_0x4c96('0x15')]['handleMessageBody']=function(_0x5d0f4e,_0x367230){simpleParser(_0x5d0f4e,{'Iconv':Iconv},this[_0x4c96('0x36')]['bind'](this));};EmailImap[_0x4c96('0x15')][_0x4c96('0x34')]=function(_0x830182){};EmailImap[_0x4c96('0x15')]['handleMessageEnd']=function(){};EmailImap[_0x4c96('0x15')][_0x4c96('0x36')]=function(_0x178e6c,_0x112116){if(_0x178e6c){logger[_0x4c96('0x12')](_0x178e6c);}else{var _0x5be1c3=this;utils[_0x4c96('0x37')](this[_0x4c96('0xc')],_0x112116,function(_0x5615f2){_0x5be1c3[_0x4c96('0x38')](_0x4c96('0xa'),_0x5615f2);});}};EmailImap[_0x4c96('0x15')][_0x4c96('0x30')]=function(){this[_0x4c96('0xe')][_0x4c96('0x31')](!![],this[_0x4c96('0x29')]['bind'](this));};EmailImap[_0x4c96('0x15')][_0x4c96('0x39')]=function(_0x2e0001){this[_0x4c96('0x13')](_0x2e0001);this[_0x4c96('0xe')][_0x4c96('0x31')](!![],this[_0x4c96('0x29')][_0x4c96('0xf')](this));};EmailImap[_0x4c96('0x15')][_0x4c96('0x11')]=function(){this['emit'](_0x4c96('0x2a'));};EmailImap[_0x4c96('0x15')][_0x4c96('0x13')]=function(_0x2b4a5f,_0x6e94f1){logger['error'](_0x4c96('0x13'),this[_0x4c96('0xc')][_0x4c96('0xa')],JSON[_0x4c96('0x3a')](_0x2b4a5f));var _0x557f94='';if(_0x2b4a5f){if(_0x2b4a5f[_0x4c96('0x3b')]){_0x557f94=_0x2b4a5f[_0x4c96('0x3b')];}else{for(var _0x5e39d2 in _0x2b4a5f){if(_0x2b4a5f[_0x4c96('0x3c')](_0x5e39d2)){_0x557f94+=_[_0x4c96('0x3d')](_0x5e39d2)+':\x20'+_0x2b4a5f[_0x5e39d2]+'\x0a';}}}}if(_0x6e94f1){this['imap'][_0x4c96('0x2a')]();}else{this[_0x4c96('0x38')](_0x4c96('0x12'),_0x557f94);this[_0x4c96('0x38')](_0x4c96('0x2a'));}};module['exports']=EmailImap;