Built motion from commit 013e4bb4.|2.6.18
[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 _0x2af1=['connTimeout','authTimeout','user','modernAuthentication','xoauth2','data5','password','authentication','anonymous@xcally.com','host','port','tls','required','openBox','handleOpenBox','handleCloseBox','readUnseen','search','UNSEEN','handleReadUnseen','fetch','message','handleFetchMessage','handleFetchEnd','closeBox','body','handleMessageBody','handleMessageEnd','handleSimpleParser','handleMessageAttributes','parser','emit','handleFetchError','textCode','hasOwnProperty','upperFirst','exports','util','imap','mailparser','simpleParser','Iconv','EventEmitter','./utils','email','mailbox','account','getAccount','ready','handleReady','bind','once','end','handleEnd','error','handleError','connect','inherits','prototype'];(function(_0x567942,_0x142d69){var _0x3cb453=function(_0x55b196){while(--_0x55b196){_0x567942['push'](_0x567942['shift']());}};_0x3cb453(++_0x142d69);}(_0x2af1,0x14c));var _0x12af=function(_0x36403f,_0x2ba222){_0x36403f=_0x36403f-0x0;var _0x16b69b=_0x2af1[_0x36403f];return _0x16b69b;};'use strict';var _=require('lodash');var util=require(_0x12af('0x0'));var Imap=require(_0x12af('0x1'));var simpleParser=require(_0x12af('0x2'))[_0x12af('0x3')];var Iconv=require('iconv')[_0x12af('0x4')];var EventEmitter=require('events')[_0x12af('0x5')];var utils=require(_0x12af('0x6'));var logger=require('../../../config/logger')(_0x12af('0x7'));function EmailImap(_0x3951eb,_0x462d91){this[_0x12af('0x8')]=_0x3951eb['mailbox'];this[_0x12af('0x9')]=this[_0x12af('0xa')](_0x3951eb,_0x462d91);this[_0x12af('0x1')]=new Imap(this[_0x12af('0x9')]);this[_0x12af('0x1')]['once'](_0x12af('0xb'),this[_0x12af('0xc')][_0x12af('0xd')](this));this['imap'][_0x12af('0xe')](_0x12af('0xf'),this[_0x12af('0x10')][_0x12af('0xd')](this));this['imap']['on'](_0x12af('0x11'),this[_0x12af('0x12')][_0x12af('0xd')](this));this['imap'][_0x12af('0x13')]();}util[_0x12af('0x14')](EmailImap,EventEmitter);EmailImap[_0x12af('0x15')][_0x12af('0xa')]=function(_0x790af5,_0xf405e4){var _0x59a2e3={'connTimeout':_0x790af5[_0x12af('0x16')]?_0x790af5['connTimeout']*0x3e8:0x2710,'authTimeout':_0x790af5[_0x12af('0x17')]?_0x790af5[_0x12af('0x17')]*0x3e8:0x1388};if(_0x790af5['service']){_0x59a2e3['user']=_0x790af5[_0x12af('0x18')];if(_0x790af5[_0x12af('0x19')]){_0x59a2e3[_0x12af('0x1a')]=utils['generateXOAuth2Token'](_0x790af5['CloudProvider'][_0x12af('0x1b')],_0x790af5['user']);}else{_0x59a2e3[_0x12af('0x1c')]=_0x790af5[_0x12af('0x1c')];}}else{if(_0x790af5[_0x12af('0x1d')]){_0x59a2e3[_0x12af('0x18')]=_0x790af5[_0x12af('0x18')];_0x59a2e3['password']=_0x790af5[_0x12af('0x1c')];}}_0x59a2e3[_0x12af('0x7')]=_0xf405e4||_0x790af5[_0x12af('0x18')]||_0x12af('0x1e');_0x59a2e3[_0x12af('0x1f')]=_0x790af5[_0x12af('0x1f')];_0x59a2e3[_0x12af('0x20')]=_0x790af5[_0x12af('0x20')]||0x3e1;if(_0x790af5[_0x12af('0x21')]){_0x59a2e3[_0x12af('0x21')]=!![];}else{_0x59a2e3[_0x12af('0x21')]=![];_0x59a2e3['autotls']=_0x12af('0x22');}return _0x59a2e3;};EmailImap[_0x12af('0x15')][_0x12af('0xc')]=function(){this[_0x12af('0x1')][_0x12af('0x23')](this[_0x12af('0x8')],![],this[_0x12af('0x24')][_0x12af('0xd')](this));};EmailImap[_0x12af('0x15')][_0x12af('0x24')]=function(_0x380db2,_0x3fe7a0){if(_0x380db2){this[_0x12af('0x12')](_0x380db2,!![]);}else{this['emit']('box',_0x3fe7a0);this['readUnseen']();}};EmailImap[_0x12af('0x15')][_0x12af('0x25')]=function(_0x107fc1){if(_0x107fc1){this['handleError'](_0x107fc1,!![]);}else{this[_0x12af('0x1')][_0x12af('0xf')]();}};EmailImap['prototype'][_0x12af('0x26')]=function(){this['imap'][_0x12af('0x27')]([_0x12af('0x28')],this['handleReadUnseen'][_0x12af('0xd')](this));};EmailImap[_0x12af('0x15')][_0x12af('0x29')]=function(_0x2d786e,_0xc87619){if(_0x2d786e){this[_0x12af('0x12')](_0x2d786e,!![]);}else{if(_0xc87619['length']){try{var _0x40692e=this[_0x12af('0x1')][_0x12af('0x2a')](_0xc87619,{'bodies':'','markSeen':!![]});_0x40692e['on'](_0x12af('0x2b'),this[_0x12af('0x2c')]['bind'](this));_0x40692e[_0x12af('0xe')](_0x12af('0x11'),this['handleFetchError'][_0x12af('0xd')](this));_0x40692e[_0x12af('0xe')]('end',this[_0x12af('0x2d')]['bind'](this));}catch(_0x220f6e){logger[_0x12af('0x11')](_0x220f6e);}}else{this[_0x12af('0x1')][_0x12af('0x2e')](!![],this[_0x12af('0x25')][_0x12af('0xd')](this));}}};EmailImap[_0x12af('0x15')][_0x12af('0x2c')]=function(_0x3144cd){_0x3144cd['on'](_0x12af('0x2f'),this[_0x12af('0x30')]['bind'](this));_0x3144cd[_0x12af('0xe')]('attributes',this['handleMessageAttributes'][_0x12af('0xd')](this));_0x3144cd[_0x12af('0xe')]('end',this[_0x12af('0x31')][_0x12af('0xd')](this));};EmailImap[_0x12af('0x15')]['handleMessageBody']=function(_0x620c0d){simpleParser(_0x620c0d,{'Iconv':Iconv},this[_0x12af('0x32')][_0x12af('0xd')](this));};EmailImap[_0x12af('0x15')][_0x12af('0x33')]=function(){};EmailImap[_0x12af('0x15')][_0x12af('0x31')]=function(){};EmailImap[_0x12af('0x15')][_0x12af('0x32')]=function(_0x135499,_0x3afc10){if(_0x135499){logger[_0x12af('0x11')](_0x135499);}else{var _0x437cad=this;utils[_0x12af('0x34')](this['account'],_0x3afc10,function(_0x535a44){_0x437cad[_0x12af('0x35')](_0x12af('0x7'),_0x535a44);});}};EmailImap[_0x12af('0x15')][_0x12af('0x2d')]=function(){this[_0x12af('0x1')][_0x12af('0x2e')](!![],this[_0x12af('0x25')][_0x12af('0xd')](this));};EmailImap[_0x12af('0x15')][_0x12af('0x36')]=function(_0x131e76){this[_0x12af('0x12')](_0x131e76);this[_0x12af('0x1')][_0x12af('0x2e')](!![],this[_0x12af('0x25')]['bind'](this));};EmailImap['prototype'][_0x12af('0x10')]=function(){this['emit'](_0x12af('0xf'));};EmailImap[_0x12af('0x15')][_0x12af('0x12')]=function(_0x2cfd88,_0x390263){logger['error'](_0x12af('0x12'),this['account'][_0x12af('0x7')],JSON['stringify'](_0x2cfd88));var _0x268160='';if(_0x2cfd88){if(_0x2cfd88[_0x12af('0x37')]){_0x268160=_0x2cfd88[_0x12af('0x37')];}else{for(var _0x5afe16 in _0x2cfd88){if(_0x2cfd88[_0x12af('0x38')](_0x5afe16)){_0x268160+=_[_0x12af('0x39')](_0x5afe16)+':\x20'+_0x2cfd88[_0x5afe16]+'\x0a';}}}}if(_0x390263){this[_0x12af('0x1')][_0x12af('0xf')]();}else{this[_0x12af('0x35')](_0x12af('0x11'),_0x268160);this['emit'](_0x12af('0xf'));}};module[_0x12af('0x3a')]=EmailImap;