52afcadbf5f28e039368eebbbcaa026d523433eb
[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 _0xe61c=['attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','handleFetchEnd','handleFetchError','stringify','hasOwnProperty','exports','lodash','imap','mailparser','simpleParser','events','./utils','../../../config/logger','email','mailbox','INBOX','getAccount','account','once','ready','handleReady','handleEnd','bind','error','inherits','connTimeout','authTimeout','user','anonymous@xcally.com','modernAuthentication','generateXOAuth2Token','data5','password','authentication','host','port','tls','autotls','required','prototype','handleOpenBox','handleError','emit','box','end','search','handleReadUnseen','message','handleFetchMessage','closeBox','handleCloseBox','body','handleMessageBody'];(function(_0x34cf97,_0x23b348){var _0x427041=function(_0x47dd85){while(--_0x47dd85){_0x34cf97['push'](_0x34cf97['shift']());}};_0x427041(++_0x23b348);}(_0xe61c,0xee));var _0xce61=function(_0x113e32,_0x5339f0){_0x113e32=_0x113e32-0x0;var _0x4ff939=_0xe61c[_0x113e32];return _0x4ff939;};'use strict';var _=require(_0xce61('0x0'));var util=require('util');var Imap=require(_0xce61('0x1'));var simpleParser=require(_0xce61('0x2'))[_0xce61('0x3')];var Iconv=require('iconv')['Iconv'];var EventEmitter=require(_0xce61('0x4'))['EventEmitter'];var utils=require(_0xce61('0x5'));var logger=require(_0xce61('0x6'))(_0xce61('0x7'));function EmailImap(_0x200b9a,_0x239319){this[_0xce61('0x8')]=_0xce61('0x9');this['account']=this[_0xce61('0xa')](_0x200b9a,_0x239319);this[_0xce61('0x1')]=new Imap(this[_0xce61('0xb')]);this[_0xce61('0x1')][_0xce61('0xc')](_0xce61('0xd'),this[_0xce61('0xe')]['bind'](this));this[_0xce61('0x1')][_0xce61('0xc')]('end',this[_0xce61('0xf')][_0xce61('0x10')](this));this['imap']['on'](_0xce61('0x11'),this['handleError'][_0xce61('0x10')](this));this[_0xce61('0x1')]['connect']();}util[_0xce61('0x12')](EmailImap,EventEmitter);EmailImap['prototype'][_0xce61('0xa')]=function(_0x5dfbc5,_0x34f0d5){var _0x17b690={'connTimeout':_0x5dfbc5[_0xce61('0x13')]?_0x5dfbc5[_0xce61('0x13')]*0x3e8:0x2710,'authTimeout':_0x5dfbc5[_0xce61('0x14')]?_0x5dfbc5['authTimeout']*0x3e8:0x1388};if(_0x5dfbc5['service']){_0x17b690[_0xce61('0x15')]=_0x5dfbc5['user'];_0x17b690['email']=_0x34f0d5||_0x5dfbc5[_0xce61('0x15')]||_0xce61('0x16');if(_0x5dfbc5[_0xce61('0x17')]){_0x17b690['xoauth2']=utils[_0xce61('0x18')](_0x5dfbc5['CloudProvider'][_0xce61('0x19')],_0x5dfbc5[_0xce61('0x15')]);}else{_0x17b690[_0xce61('0x1a')]=_0x5dfbc5[_0xce61('0x1a')];}}else{if(_0x5dfbc5[_0xce61('0x1b')]){_0x17b690[_0xce61('0x15')]=_0x5dfbc5[_0xce61('0x15')];_0x17b690[_0xce61('0x1a')]=_0x5dfbc5['password'];}}_0x17b690['host']=_0x5dfbc5[_0xce61('0x1c')];_0x17b690['port']=_0x5dfbc5[_0xce61('0x1d')]||0x3e1;if(_0x5dfbc5[_0xce61('0x1e')]){_0x17b690[_0xce61('0x1e')]=!![];}else{_0x17b690[_0xce61('0x1e')]=![];_0x17b690[_0xce61('0x1f')]=_0xce61('0x20');}return _0x17b690;};EmailImap[_0xce61('0x21')][_0xce61('0xe')]=function(){this['imap']['openBox'](this[_0xce61('0x8')],![],this[_0xce61('0x22')][_0xce61('0x10')](this));};EmailImap[_0xce61('0x21')][_0xce61('0x22')]=function(_0x2241b2,_0x471a08){if(_0x2241b2){this[_0xce61('0x23')](_0x2241b2,!![]);}else{this[_0xce61('0x24')](_0xce61('0x25'),_0x471a08);this['readUnseen']();}};EmailImap[_0xce61('0x21')]['handleCloseBox']=function(_0x2f8d79){if(_0x2f8d79){this[_0xce61('0x23')](_0x2f8d79,!![]);}else{this[_0xce61('0x1')][_0xce61('0x26')]();}};EmailImap[_0xce61('0x21')]['readUnseen']=function(){this[_0xce61('0x1')][_0xce61('0x27')](['UNSEEN'],this['handleReadUnseen']['bind'](this));};EmailImap[_0xce61('0x21')][_0xce61('0x28')]=function(_0x4206c7,_0x3a71b4){if(_0x4206c7){this[_0xce61('0x23')](_0x4206c7,!![]);}else{if(_0x3a71b4['length']){try{var _0x74f1bc=this[_0xce61('0x1')]['fetch'](_0x3a71b4,{'bodies':'','markSeen':!![]});_0x74f1bc['on'](_0xce61('0x29'),this[_0xce61('0x2a')]['bind'](this));_0x74f1bc[_0xce61('0xc')](_0xce61('0x11'),this['handleFetchError'][_0xce61('0x10')](this));_0x74f1bc['once'](_0xce61('0x26'),this['handleFetchEnd']['bind'](this));}catch(_0x4f3ca2){logger[_0xce61('0x11')](_0x4f3ca2);}}else{this[_0xce61('0x1')][_0xce61('0x2b')](!![],this[_0xce61('0x2c')][_0xce61('0x10')](this));}}};EmailImap[_0xce61('0x21')][_0xce61('0x2a')]=function(_0xc4a23e){_0xc4a23e['on'](_0xce61('0x2d'),this[_0xce61('0x2e')][_0xce61('0x10')](this));_0xc4a23e[_0xce61('0xc')](_0xce61('0x2f'),this[_0xce61('0x30')][_0xce61('0x10')](this));_0xc4a23e[_0xce61('0xc')](_0xce61('0x26'),this[_0xce61('0x31')][_0xce61('0x10')](this));};EmailImap[_0xce61('0x21')]['handleMessageBody']=function(_0x16fef7){simpleParser(_0x16fef7,{'Iconv':Iconv},this[_0xce61('0x32')][_0xce61('0x10')](this));};EmailImap['prototype']['handleMessageAttributes']=function(){};EmailImap['prototype'][_0xce61('0x31')]=function(){};EmailImap[_0xce61('0x21')][_0xce61('0x32')]=function(_0xd20e10,_0xfe5b4c){if(_0xd20e10){logger[_0xce61('0x11')](_0xd20e10);}else{var _0x3179e4=this;utils[_0xce61('0x33')](this[_0xce61('0xb')],_0xfe5b4c,function(_0x4c4403){_0x3179e4['emit'](_0xce61('0x7'),_0x4c4403);});}};EmailImap[_0xce61('0x21')][_0xce61('0x34')]=function(){this[_0xce61('0x1')][_0xce61('0x2b')](!![],this['handleCloseBox'][_0xce61('0x10')](this));};EmailImap[_0xce61('0x21')][_0xce61('0x35')]=function(_0x4726e1){this[_0xce61('0x23')](_0x4726e1);this[_0xce61('0x1')]['closeBox'](!![],this[_0xce61('0x2c')][_0xce61('0x10')](this));};EmailImap['prototype']['handleEnd']=function(){this[_0xce61('0x24')](_0xce61('0x26'));};EmailImap[_0xce61('0x21')][_0xce61('0x23')]=function(_0x43be21,_0x5ddce5){logger[_0xce61('0x11')]('handleError',this[_0xce61('0xb')][_0xce61('0x7')],JSON[_0xce61('0x36')](_0x43be21));var _0x2f0189='';if(_0x43be21){if(_0x43be21['textCode']){_0x2f0189=_0x43be21['textCode'];}else{for(var _0x4db82d in _0x43be21){if(_0x43be21[_0xce61('0x37')](_0x4db82d)){_0x2f0189+=_['upperFirst'](_0x4db82d)+':\x20'+_0x43be21[_0x4db82d]+'\x0a';}}}}if(_0x5ddce5){this[_0xce61('0x1')][_0xce61('0x26')]();}else{this['emit'](_0xce61('0x11'),_0x2f0189);this[_0xce61('0x24')]('end');}};module[_0xce61('0x38')]=EmailImap;