1d063be3647147a71c0c68314685a5a515d0a878
[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 _0xc094=['handleSimpleParser','parser','textCode','hasOwnProperty','upperFirst','util','imap','randomstring','mailparser','iconv','Iconv','events','EventEmitter','../../../config/logger','email','mailbox','INBOX','account','getAccount','once','ready','handleReady','bind','handleEnd','error','handleError','inherits','prototype','connTimeout','authTimeout','isNil','user','password','host','port','tls','autotls','required','service','anonymous@xcally.com','handleOpenBox','emit','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','end','handleMessageEnd'];(function(_0x59321c,_0x16c46b){var _0x180b01=function(_0x5e2904){while(--_0x5e2904){_0x59321c['push'](_0x59321c['shift']());}};_0x180b01(++_0x16c46b);}(_0xc094,0x131));var _0x4c09=function(_0x58d31b,_0xbbe2da){_0x58d31b=_0x58d31b-0x0;var _0x1a95da=_0xc094[_0x58d31b];return _0x1a95da;};'use strict';var fs=require('fs');var path=require('path');var util=require(_0x4c09('0x0'));var Imap=require(_0x4c09('0x1'));var _=require('lodash');var rs=require(_0x4c09('0x2'));var simpleParser=require(_0x4c09('0x3'))['simpleParser'];var Iconv=require(_0x4c09('0x4'))[_0x4c09('0x5')];var EventEmitter=require(_0x4c09('0x6'))[_0x4c09('0x7')];var utils=require('./utils');var logger=require(_0x4c09('0x8'))(_0x4c09('0x9'));function EmailImap(_0xd9fc42,_0x15236f){this[_0x4c09('0xa')]=_0x4c09('0xb');this[_0x4c09('0xc')]=this[_0x4c09('0xd')](_0xd9fc42,_0x15236f);this['imap']=new Imap(this[_0x4c09('0xc')]);this['imap'][_0x4c09('0xe')](_0x4c09('0xf'),this[_0x4c09('0x10')][_0x4c09('0x11')](this));this[_0x4c09('0x1')][_0x4c09('0xe')]('end',this[_0x4c09('0x12')][_0x4c09('0x11')](this));this[_0x4c09('0x1')]['on'](_0x4c09('0x13'),this[_0x4c09('0x14')][_0x4c09('0x11')](this));this[_0x4c09('0x1')]['connect']();}util[_0x4c09('0x15')](EmailImap,EventEmitter);EmailImap[_0x4c09('0x16')][_0x4c09('0xd')]=function(_0x5cbafb,_0x2a4c29){var _0x2e0c36={'connTimeout':_0x5cbafb[_0x4c09('0x17')]?_0x5cbafb['connTimeout']*0x3e8:0x2710,'authTimeout':_0x5cbafb['authTimeout']?_0x5cbafb[_0x4c09('0x18')]*0x3e8:0x1388};if(_[_0x4c09('0x19')](_0x5cbafb['service'])){if(_0x5cbafb['authentication']){_0x2e0c36[_0x4c09('0x1a')]=_0x5cbafb[_0x4c09('0x1a')];_0x2e0c36[_0x4c09('0x1b')]=_0x5cbafb[_0x4c09('0x1b')];}_0x2e0c36[_0x4c09('0x1c')]=_0x5cbafb['host'];_0x2e0c36[_0x4c09('0x1d')]=_0x5cbafb[_0x4c09('0x1d')]||0x3e1;if(_0x5cbafb['tls']){_0x2e0c36[_0x4c09('0x1e')]=!![];}else{_0x2e0c36[_0x4c09('0x1e')]=![];_0x2e0c36[_0x4c09('0x1f')]=_0x4c09('0x20');}}else{_0x2e0c36[_0x4c09('0x1a')]=_0x5cbafb[_0x4c09('0x1a')];_0x2e0c36[_0x4c09('0x1b')]=_0x5cbafb[_0x4c09('0x1b')];_0x2e0c36['host']=utils['getHost'](_0x5cbafb[_0x4c09('0x21')]);_0x2e0c36[_0x4c09('0x1d')]=0x3e1;_0x2e0c36[_0x4c09('0x1e')]=!![];}_0x2e0c36[_0x4c09('0x9')]=_0x2a4c29||_0x5cbafb[_0x4c09('0x1a')]||_0x4c09('0x22');return _0x2e0c36;};EmailImap[_0x4c09('0x16')]['handleReady']=function(){this[_0x4c09('0x1')]['openBox'](this[_0x4c09('0xa')],![],this[_0x4c09('0x23')][_0x4c09('0x11')](this));};EmailImap[_0x4c09('0x16')][_0x4c09('0x23')]=function(_0x5baa54,_0x2f7410){if(_0x5baa54){this['handleError'](_0x5baa54,!![]);}else{this[_0x4c09('0x24')]('box',_0x2f7410);this[_0x4c09('0x25')]();}};EmailImap[_0x4c09('0x16')][_0x4c09('0x26')]=function(_0x1f077f){if(_0x1f077f){this['handleError'](_0x1f077f,!![]);}else{this[_0x4c09('0x1')]['end']();}};EmailImap['prototype'][_0x4c09('0x25')]=function(){this[_0x4c09('0x1')][_0x4c09('0x27')]([_0x4c09('0x28')],this[_0x4c09('0x29')][_0x4c09('0x11')](this));};EmailImap['prototype'][_0x4c09('0x29')]=function(_0x45cfc8,_0x1bd18d){if(_0x45cfc8){this[_0x4c09('0x14')](_0x45cfc8,!![]);}else{if(_0x1bd18d[_0x4c09('0x2a')]){try{var _0x4ec12e=this[_0x4c09('0x1')][_0x4c09('0x2b')](_0x1bd18d,{'bodies':'','markSeen':!![]});_0x4ec12e['on'](_0x4c09('0x2c'),this[_0x4c09('0x2d')]['bind'](this));_0x4ec12e[_0x4c09('0xe')]('error',this[_0x4c09('0x2e')][_0x4c09('0x11')](this));_0x4ec12e[_0x4c09('0xe')]('end',this[_0x4c09('0x2f')][_0x4c09('0x11')](this));}catch(_0x3e162f){logger['error'](_0x3e162f);}}else{this[_0x4c09('0x1')][_0x4c09('0x30')](!![],this[_0x4c09('0x26')]['bind'](this));}}};EmailImap[_0x4c09('0x16')][_0x4c09('0x2d')]=function(_0x117772,_0x44e6d7){_0x117772['on'](_0x4c09('0x31'),this[_0x4c09('0x32')][_0x4c09('0x11')](this));_0x117772[_0x4c09('0xe')](_0x4c09('0x33'),this[_0x4c09('0x34')][_0x4c09('0x11')](this));_0x117772[_0x4c09('0xe')](_0x4c09('0x35'),this[_0x4c09('0x36')]['bind'](this));};EmailImap[_0x4c09('0x16')][_0x4c09('0x32')]=function(_0x4ebaea,_0x5aafef){simpleParser(_0x4ebaea,{'Iconv':Iconv},this[_0x4c09('0x37')][_0x4c09('0x11')](this));};EmailImap[_0x4c09('0x16')][_0x4c09('0x34')]=function(_0x34b3cb){};EmailImap['prototype'][_0x4c09('0x36')]=function(){};EmailImap[_0x4c09('0x16')]['handleSimpleParser']=function(_0x132fdd,_0x31c420){if(_0x132fdd){logger[_0x4c09('0x13')](_0x132fdd);}else{var _0x319060=this;utils[_0x4c09('0x38')](this[_0x4c09('0xc')],_0x31c420,function(_0x33c9f2){_0x319060[_0x4c09('0x24')](_0x4c09('0x9'),_0x33c9f2);});}};EmailImap[_0x4c09('0x16')][_0x4c09('0x2f')]=function(){this['imap']['closeBox'](!![],this[_0x4c09('0x26')]['bind'](this));};EmailImap[_0x4c09('0x16')][_0x4c09('0x2e')]=function(_0x5c79e9){this[_0x4c09('0x14')](_0x5c79e9);this['imap']['closeBox'](!![],this[_0x4c09('0x26')][_0x4c09('0x11')](this));};EmailImap['prototype'][_0x4c09('0x12')]=function(){this[_0x4c09('0x24')](_0x4c09('0x35'));};EmailImap[_0x4c09('0x16')]['handleError']=function(_0x54b463,_0x5e6df2){logger['error'](_0x4c09('0x14'),this['account'][_0x4c09('0x9')],JSON['stringify'](_0x54b463));var _0x36b761='';if(_0x54b463){if(_0x54b463[_0x4c09('0x39')]){_0x36b761=_0x54b463[_0x4c09('0x39')];}else{for(var _0x254bb3 in _0x54b463){if(_0x54b463[_0x4c09('0x3a')](_0x254bb3)){_0x36b761+=_[_0x4c09('0x3b')](_0x254bb3)+':\x20'+_0x54b463[_0x254bb3]+'\x0a';}}}}if(_0x5e6df2){this[_0x4c09('0x1')]['end']();}else{this['emit'](_0x4c09('0x13'),_0x36b761);this[_0x4c09('0x24')]('end');}};module['exports']=EmailImap;