Built motion from commit (unavailable).|2.4.4
[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 _0x51c4=['port','tls','autotls','required','getHost','anonymous@xcally.com','openBox','handleOpenBox','emit','readUnseen','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchMessage','handleFetchError','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleSimpleParser','handleMessageEnd','parser','handleCloseBox','stringify','textCode','hasOwnProperty','upperFirst','util','imap','lodash','mailparser','iconv','Iconv','events','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX','account','once','handleReady','end','handleEnd','bind','error','handleError','connect','inherits','prototype','getAccount','authTimeout','isNil','service','authentication','user','password','host'];(function(_0x44bcb0,_0x235aa9){var _0xfaf881=function(_0x25d81d){while(--_0x25d81d){_0x44bcb0['push'](_0x44bcb0['shift']());}};_0xfaf881(++_0x235aa9);}(_0x51c4,0x192));var _0x451c=function(_0x598726,_0x7f03eb){_0x598726=_0x598726-0x0;var _0x99aef6=_0x51c4[_0x598726];return _0x99aef6;};'use strict';var fs=require('fs');var path=require('path');var util=require(_0x451c('0x0'));var Imap=require(_0x451c('0x1'));var _=require(_0x451c('0x2'));var rs=require('randomstring');var simpleParser=require(_0x451c('0x3'))['simpleParser'];var Iconv=require(_0x451c('0x4'))[_0x451c('0x5')];var EventEmitter=require(_0x451c('0x6'))[_0x451c('0x7')];var utils=require(_0x451c('0x8'));var logger=require(_0x451c('0x9'))(_0x451c('0xa'));function EmailImap(_0x3ba692,_0x4b0e68){this[_0x451c('0xb')]=_0x451c('0xc');this[_0x451c('0xd')]=this['getAccount'](_0x3ba692,_0x4b0e68);this[_0x451c('0x1')]=new Imap(this['account']);this['imap'][_0x451c('0xe')]('ready',this[_0x451c('0xf')]['bind'](this));this[_0x451c('0x1')][_0x451c('0xe')](_0x451c('0x10'),this[_0x451c('0x11')][_0x451c('0x12')](this));this[_0x451c('0x1')]['on'](_0x451c('0x13'),this[_0x451c('0x14')][_0x451c('0x12')](this));this[_0x451c('0x1')][_0x451c('0x15')]();}util[_0x451c('0x16')](EmailImap,EventEmitter);EmailImap[_0x451c('0x17')][_0x451c('0x18')]=function(_0xe015ff,_0x3880ba){var _0xebdcd={'connTimeout':_0xe015ff['connTimeout']?_0xe015ff['connTimeout']*0x3e8:0x2710,'authTimeout':_0xe015ff['authTimeout']?_0xe015ff[_0x451c('0x19')]*0x3e8:0x1388};if(_[_0x451c('0x1a')](_0xe015ff[_0x451c('0x1b')])){if(_0xe015ff[_0x451c('0x1c')]){_0xebdcd[_0x451c('0x1d')]=_0xe015ff[_0x451c('0x1d')];_0xebdcd[_0x451c('0x1e')]=_0xe015ff[_0x451c('0x1e')];}_0xebdcd[_0x451c('0x1f')]=_0xe015ff[_0x451c('0x1f')];_0xebdcd['port']=_0xe015ff[_0x451c('0x20')]||0x3e1;if(_0xe015ff[_0x451c('0x21')]){_0xebdcd['tls']=!![];}else{_0xebdcd['tls']=![];_0xebdcd[_0x451c('0x22')]=_0x451c('0x23');}}else{_0xebdcd[_0x451c('0x1d')]=_0xe015ff[_0x451c('0x1d')];_0xebdcd[_0x451c('0x1e')]=_0xe015ff['password'];_0xebdcd[_0x451c('0x1f')]=utils[_0x451c('0x24')](_0xe015ff[_0x451c('0x1b')]);_0xebdcd['port']=0x3e1;_0xebdcd[_0x451c('0x21')]=!![];}_0xebdcd['email']=_0x3880ba||_0xe015ff[_0x451c('0x1d')]||_0x451c('0x25');return _0xebdcd;};EmailImap[_0x451c('0x17')]['handleReady']=function(){this[_0x451c('0x1')][_0x451c('0x26')](this[_0x451c('0xb')],![],this['handleOpenBox'][_0x451c('0x12')](this));};EmailImap[_0x451c('0x17')][_0x451c('0x27')]=function(_0x1fa3c9,_0x7e3781){if(_0x1fa3c9){this[_0x451c('0x14')](_0x1fa3c9,!![]);}else{this[_0x451c('0x28')]('box',_0x7e3781);this[_0x451c('0x29')]();}};EmailImap[_0x451c('0x17')]['handleCloseBox']=function(_0x1789a5){if(_0x1789a5){this[_0x451c('0x14')](_0x1789a5,!![]);}else{this['imap'][_0x451c('0x10')]();}};EmailImap[_0x451c('0x17')][_0x451c('0x29')]=function(){this[_0x451c('0x1')]['search']([_0x451c('0x2a')],this[_0x451c('0x2b')][_0x451c('0x12')](this));};EmailImap[_0x451c('0x17')][_0x451c('0x2b')]=function(_0x4233a5,_0x5d7d66){if(_0x4233a5){this['handleError'](_0x4233a5,!![]);}else{if(_0x5d7d66[_0x451c('0x2c')]){try{var _0xccd21e=this['imap'][_0x451c('0x2d')](_0x5d7d66,{'bodies':'','markSeen':!![]});_0xccd21e['on'](_0x451c('0x2e'),this[_0x451c('0x2f')][_0x451c('0x12')](this));_0xccd21e[_0x451c('0xe')](_0x451c('0x13'),this[_0x451c('0x30')][_0x451c('0x12')](this));_0xccd21e[_0x451c('0xe')](_0x451c('0x10'),this['handleFetchEnd'][_0x451c('0x12')](this));}catch(_0x219ae4){logger[_0x451c('0x13')](_0x219ae4);}}else{this['imap'][_0x451c('0x31')](!![],this['handleCloseBox'][_0x451c('0x12')](this));}}};EmailImap[_0x451c('0x17')][_0x451c('0x2f')]=function(_0x297f51,_0x4af3f5){_0x297f51['on'](_0x451c('0x32'),this[_0x451c('0x33')][_0x451c('0x12')](this));_0x297f51[_0x451c('0xe')](_0x451c('0x34'),this[_0x451c('0x35')][_0x451c('0x12')](this));_0x297f51[_0x451c('0xe')](_0x451c('0x10'),this['handleMessageEnd'][_0x451c('0x12')](this));};EmailImap[_0x451c('0x17')]['handleMessageBody']=function(_0x371746,_0x45f8e9){simpleParser(_0x371746,{'Iconv':Iconv},this[_0x451c('0x36')][_0x451c('0x12')](this));};EmailImap[_0x451c('0x17')][_0x451c('0x35')]=function(_0x49fcd1){};EmailImap['prototype'][_0x451c('0x37')]=function(){};EmailImap[_0x451c('0x17')][_0x451c('0x36')]=function(_0x5ce2b8,_0x35f9ba){if(_0x5ce2b8){logger['error'](_0x5ce2b8);}else{var _0x560243=this;utils[_0x451c('0x38')](this[_0x451c('0xd')],_0x35f9ba,function(_0x166d25){_0x560243['emit']('email',_0x166d25);});}};EmailImap[_0x451c('0x17')]['handleFetchEnd']=function(){this['imap'][_0x451c('0x31')](!![],this[_0x451c('0x39')][_0x451c('0x12')](this));};EmailImap['prototype'][_0x451c('0x30')]=function(_0x1f4ad0){this[_0x451c('0x14')](_0x1f4ad0);this[_0x451c('0x1')][_0x451c('0x31')](!![],this[_0x451c('0x39')][_0x451c('0x12')](this));};EmailImap[_0x451c('0x17')][_0x451c('0x11')]=function(){this[_0x451c('0x28')](_0x451c('0x10'));};EmailImap[_0x451c('0x17')]['handleError']=function(_0x178289,_0x1ab787){logger[_0x451c('0x13')](_0x451c('0x14'),this[_0x451c('0xd')][_0x451c('0xa')],JSON[_0x451c('0x3a')](_0x178289));var _0x198184='';if(_0x178289){if(_0x178289[_0x451c('0x3b')]){_0x198184=_0x178289[_0x451c('0x3b')];}else{for(var _0x5d3a0f in _0x178289){if(_0x178289[_0x451c('0x3c')](_0x5d3a0f)){_0x198184+=_[_0x451c('0x3d')](_0x5d3a0f)+':\x20'+_0x178289[_0x5d3a0f]+'\x0a';}}}}if(_0x1ab787){this[_0x451c('0x1')]['end']();}else{this['emit'](_0x451c('0x13'),_0x198184);this[_0x451c('0x28')](_0x451c('0x10'));}};module['exports']=EmailImap;