Built motion from commit (unavailable).|2.2.0
[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 _0xa40b=['handleFetchError','textCode','hasOwnProperty','upperFirst','exports','path','imap','lodash','mailparser','simpleParser','EventEmitter','./utils','email','mailbox','INBOX','account','getAccount','ready','handleReady','bind','once','end','handleEnd','handleError','connect','inherits','prototype','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','handleOpenBox','emit','box','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','fetch','handleFetchMessage','handleFetchEnd','error','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','closeBox'];(function(_0x5062f9,_0x164c1e){var _0x564394=function(_0x2f40e9){while(--_0x2f40e9){_0x5062f9['push'](_0x5062f9['shift']());}};_0x564394(++_0x164c1e);}(_0xa40b,0xf9));var _0xba40=function(_0x23f5f2,_0x3b7a68){_0x23f5f2=_0x23f5f2-0x0;var _0x440b2f=_0xa40b[_0x23f5f2];return _0x440b2f;};'use strict';var fs=require('fs');var path=require(_0xba40('0x0'));var util=require('util');var Imap=require(_0xba40('0x1'));var _=require(_0xba40('0x2'));var rs=require('randomstring');var simpleParser=require(_0xba40('0x3'))[_0xba40('0x4')];var EventEmitter=require('events')[_0xba40('0x5')];var utils=require(_0xba40('0x6'));var logger=require('../../../config/logger')(_0xba40('0x7'));function EmailImap(_0x4a29db,_0x1ed5d7){this[_0xba40('0x8')]=_0xba40('0x9');this[_0xba40('0xa')]=this[_0xba40('0xb')](_0x4a29db,_0x1ed5d7);this['imap']=new Imap(this['account']);this[_0xba40('0x1')]['once'](_0xba40('0xc'),this[_0xba40('0xd')][_0xba40('0xe')](this));this[_0xba40('0x1')][_0xba40('0xf')](_0xba40('0x10'),this[_0xba40('0x11')][_0xba40('0xe')](this));this[_0xba40('0x1')]['on']('error',this[_0xba40('0x12')][_0xba40('0xe')](this));this[_0xba40('0x1')][_0xba40('0x13')]();}util[_0xba40('0x14')](EmailImap,EventEmitter);EmailImap[_0xba40('0x15')][_0xba40('0xb')]=function(_0x578a5f,_0x32b1d3){var _0x397cc3={'connTimeout':_0x578a5f[_0xba40('0x16')]?_0x578a5f['connTimeout']*0x3e8:0x2710,'authTimeout':_0x578a5f['authTimeout']?_0x578a5f[_0xba40('0x17')]*0x3e8:0x1388};if(_[_0xba40('0x18')](_0x578a5f[_0xba40('0x19')])){if(_0x578a5f[_0xba40('0x1a')]){_0x397cc3['user']=_0x578a5f[_0xba40('0x1b')];_0x397cc3[_0xba40('0x1c')]=_0x578a5f[_0xba40('0x1c')];}_0x397cc3[_0xba40('0x1d')]=_0x578a5f[_0xba40('0x1d')];_0x397cc3[_0xba40('0x1e')]=_0x578a5f[_0xba40('0x1e')]||0x3e1;if(_0x578a5f['tls']){_0x397cc3[_0xba40('0x1f')]=!![];}else{_0x397cc3[_0xba40('0x1f')]=![];_0x397cc3[_0xba40('0x20')]=_0xba40('0x21');}}else{_0x397cc3[_0xba40('0x1b')]=_0x578a5f[_0xba40('0x1b')];_0x397cc3['password']=_0x578a5f[_0xba40('0x1c')];_0x397cc3[_0xba40('0x1d')]=utils[_0xba40('0x22')](_0x578a5f[_0xba40('0x19')]);_0x397cc3[_0xba40('0x1e')]=0x3e1;_0x397cc3[_0xba40('0x1f')]=!![];}_0x397cc3['email']=_0x32b1d3||_0x578a5f[_0xba40('0x1b')]||'anonymous@xcally.com';return _0x397cc3;};EmailImap[_0xba40('0x15')]['handleReady']=function(){this[_0xba40('0x1')]['openBox'](this['mailbox'],![],this[_0xba40('0x23')]['bind'](this));};EmailImap[_0xba40('0x15')][_0xba40('0x23')]=function(_0x306791,_0x83ca8a){if(_0x306791){this[_0xba40('0x12')](_0x306791,!![]);}else{this[_0xba40('0x24')](_0xba40('0x25'),_0x83ca8a);this[_0xba40('0x26')]();}};EmailImap['prototype'][_0xba40('0x27')]=function(_0x8fab6c){if(_0x8fab6c){this[_0xba40('0x12')](_0x8fab6c,!![]);}else{this[_0xba40('0x1')][_0xba40('0x10')]();}};EmailImap[_0xba40('0x15')]['readUnseen']=function(){this[_0xba40('0x1')][_0xba40('0x28')]([_0xba40('0x29')],this[_0xba40('0x2a')][_0xba40('0xe')](this));};EmailImap['prototype'][_0xba40('0x2a')]=function(_0xf98da5,_0x468af9){if(_0xf98da5){this[_0xba40('0x12')](_0xf98da5,!![]);}else{if(_0x468af9[_0xba40('0x2b')]){try{var _0x2487e8=this['imap'][_0xba40('0x2c')](_0x468af9,{'bodies':'','markSeen':!![]});_0x2487e8['on']('message',this[_0xba40('0x2d')][_0xba40('0xe')](this));_0x2487e8[_0xba40('0xf')]('error',this['handleFetchError']['bind'](this));_0x2487e8[_0xba40('0xf')]('end',this[_0xba40('0x2e')]['bind'](this));}catch(_0x530c0e){logger[_0xba40('0x2f')](_0x530c0e);}}else{this['imap']['closeBox'](!![],this[_0xba40('0x27')][_0xba40('0xe')](this));}}};EmailImap[_0xba40('0x15')][_0xba40('0x2d')]=function(_0x131e97,_0x33a98e){_0x131e97['on'](_0xba40('0x30'),this[_0xba40('0x31')][_0xba40('0xe')](this));_0x131e97['once'](_0xba40('0x32'),this[_0xba40('0x33')][_0xba40('0xe')](this));_0x131e97[_0xba40('0xf')](_0xba40('0x10'),this[_0xba40('0x34')][_0xba40('0xe')](this));};EmailImap[_0xba40('0x15')]['handleMessageBody']=function(_0x4a54ae,_0x3fd506){simpleParser(_0x4a54ae,this['handleSimpleParser'][_0xba40('0xe')](this));};EmailImap['prototype'][_0xba40('0x33')]=function(_0x438d5b){};EmailImap[_0xba40('0x15')][_0xba40('0x34')]=function(){};EmailImap[_0xba40('0x15')][_0xba40('0x35')]=function(_0xcc152a,_0x497d42){if(_0xcc152a){logger[_0xba40('0x2f')](_0xcc152a);}else{var _0x47c91e=this;utils[_0xba40('0x36')](this[_0xba40('0xa')],_0x497d42,function(_0x4dba03){_0x47c91e[_0xba40('0x24')](_0xba40('0x7'),_0x4dba03);});}};EmailImap[_0xba40('0x15')][_0xba40('0x2e')]=function(){this[_0xba40('0x1')][_0xba40('0x37')](!![],this[_0xba40('0x27')]['bind'](this));};EmailImap[_0xba40('0x15')][_0xba40('0x38')]=function(_0x56ac44){this[_0xba40('0x12')](_0x56ac44);this[_0xba40('0x1')][_0xba40('0x37')](!![],this[_0xba40('0x27')][_0xba40('0xe')](this));};EmailImap[_0xba40('0x15')][_0xba40('0x11')]=function(){this['emit']('end');};EmailImap[_0xba40('0x15')][_0xba40('0x12')]=function(_0x2f4b1a,_0x151f5b){logger[_0xba40('0x2f')](_0xba40('0x12'),this[_0xba40('0xa')][_0xba40('0x7')],JSON['stringify'](_0x2f4b1a));var _0x3f5cb7='';if(_0x2f4b1a){if(_0x2f4b1a[_0xba40('0x39')]){_0x3f5cb7=_0x2f4b1a[_0xba40('0x39')];}else{for(var _0x2f4443 in _0x2f4b1a){if(_0x2f4b1a[_0xba40('0x3a')](_0x2f4443)){_0x3f5cb7+=_[_0xba40('0x3b')](_0x2f4443)+':\x20'+_0x2f4b1a[_0x2f4443]+'\x0a';}}}}if(_0x151f5b){this[_0xba40('0x1')][_0xba40('0x10')]();}else{this[_0xba40('0x24')](_0xba40('0x2f'),_0x3f5cb7);this[_0xba40('0x24')]('end');}};module[_0xba40('0x3c')]=EmailImap;