Built motion from commit 4ffc18b1.|2.6.31
[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 _0xee58=['handleEnd','textCode','hasOwnProperty','upperFirst','exports','imap','mailparser','simpleParser','iconv','Iconv','events','EventEmitter','../../../config/logger','email','mailbox','account','getAccount','once','ready','handleReady','bind','end','error','handleError','connect','inherits','prototype','connTimeout','authTimeout','service','user','modernAuthentication','xoauth2','generateXOAuth2Token','data5','password','authentication','anonymous@xcally.com','host','port','tls','required','openBox','handleOpenBox','emit','readUnseen','UNSEEN','handleReadUnseen','length','fetch','slice','message','handleFetchEnd','closeBox','handleCloseBox','handleMessageBody','handleMessageEnd','handleSimpleParser','handleMessageAttributes','parser','handleFetchError'];(function(_0x531133,_0x26e4b4){var _0x12c250=function(_0x5b05e5){while(--_0x5b05e5){_0x531133['push'](_0x531133['shift']());}};_0x12c250(++_0x26e4b4);}(_0xee58,0x1ed));var _0x8ee5=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xee58[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var util=require('util');var Imap=require(_0x8ee5('0x0'));var simpleParser=require(_0x8ee5('0x1'))[_0x8ee5('0x2')];var Iconv=require(_0x8ee5('0x3'))[_0x8ee5('0x4')];var EventEmitter=require(_0x8ee5('0x5'))[_0x8ee5('0x6')];var utils=require('./utils');var logger=require(_0x8ee5('0x7'))(_0x8ee5('0x8'));function EmailImap(_0x33fc9e,_0x1421cc){this[_0x8ee5('0x9')]=_0x33fc9e[_0x8ee5('0x9')];this[_0x8ee5('0xa')]=this[_0x8ee5('0xb')](_0x33fc9e,_0x1421cc);this[_0x8ee5('0x0')]=new Imap(this[_0x8ee5('0xa')]);this[_0x8ee5('0x0')][_0x8ee5('0xc')](_0x8ee5('0xd'),this[_0x8ee5('0xe')][_0x8ee5('0xf')](this));this[_0x8ee5('0x0')]['once'](_0x8ee5('0x10'),this['handleEnd']['bind'](this));this[_0x8ee5('0x0')]['on'](_0x8ee5('0x11'),this[_0x8ee5('0x12')][_0x8ee5('0xf')](this));this['imap'][_0x8ee5('0x13')]();}util[_0x8ee5('0x14')](EmailImap,EventEmitter);EmailImap[_0x8ee5('0x15')][_0x8ee5('0xb')]=function(_0xae7238,_0x483b00){var _0x32af6a={'connTimeout':_0xae7238['connTimeout']?_0xae7238[_0x8ee5('0x16')]*0x3e8:0x2710,'authTimeout':_0xae7238[_0x8ee5('0x17')]?_0xae7238['authTimeout']*0x3e8:0x1388};if(_0xae7238[_0x8ee5('0x18')]){_0x32af6a[_0x8ee5('0x19')]=_0xae7238[_0x8ee5('0x19')];if(_0xae7238[_0x8ee5('0x1a')]){_0x32af6a[_0x8ee5('0x1b')]=utils[_0x8ee5('0x1c')](_0xae7238['CloudProvider'][_0x8ee5('0x1d')],_0xae7238[_0x8ee5('0x19')]);}else{_0x32af6a[_0x8ee5('0x1e')]=_0xae7238[_0x8ee5('0x1e')];}}else{if(_0xae7238[_0x8ee5('0x1f')]){_0x32af6a[_0x8ee5('0x19')]=_0xae7238[_0x8ee5('0x19')];_0x32af6a[_0x8ee5('0x1e')]=_0xae7238[_0x8ee5('0x1e')];}}_0x32af6a[_0x8ee5('0x8')]=_0x483b00||_0xae7238[_0x8ee5('0x19')]||_0x8ee5('0x20');_0x32af6a['host']=_0xae7238[_0x8ee5('0x21')];_0x32af6a[_0x8ee5('0x22')]=_0xae7238[_0x8ee5('0x22')]||0x3e1;if(_0xae7238[_0x8ee5('0x23')]){_0x32af6a['tls']=!![];}else{_0x32af6a[_0x8ee5('0x23')]=![];_0x32af6a['autotls']=_0x8ee5('0x24');}return _0x32af6a;};EmailImap[_0x8ee5('0x15')][_0x8ee5('0xe')]=function(){this[_0x8ee5('0x0')][_0x8ee5('0x25')](this[_0x8ee5('0x9')],![],this[_0x8ee5('0x26')][_0x8ee5('0xf')](this));};EmailImap[_0x8ee5('0x15')]['handleOpenBox']=function(_0x35f34e,_0x163124){if(_0x35f34e){this['handleError'](_0x35f34e,!![]);}else{this[_0x8ee5('0x27')]('box',_0x163124);this[_0x8ee5('0x28')]();}};EmailImap['prototype']['handleCloseBox']=function(_0x2a05f0){if(_0x2a05f0){this[_0x8ee5('0x12')](_0x2a05f0,!![]);}else{this[_0x8ee5('0x0')]['end']();}};EmailImap[_0x8ee5('0x15')]['readUnseen']=function(){this[_0x8ee5('0x0')]['search']([_0x8ee5('0x29')],this['handleReadUnseen'][_0x8ee5('0xf')](this));};EmailImap[_0x8ee5('0x15')][_0x8ee5('0x2a')]=function(_0x44f2cd,_0x236fc9){if(_0x44f2cd){this[_0x8ee5('0x12')](_0x44f2cd,!![]);}else{if(_0x236fc9[_0x8ee5('0x2b')]){try{var _0x3a112d=this[_0x8ee5('0x0')][_0x8ee5('0x2c')](_0x236fc9[_0x8ee5('0x2d')](0x0,0xa),{'bodies':'','markSeen':!![]});_0x3a112d['on'](_0x8ee5('0x2e'),this['handleFetchMessage'][_0x8ee5('0xf')](this));_0x3a112d[_0x8ee5('0xc')](_0x8ee5('0x11'),this['handleFetchError']['bind'](this));_0x3a112d[_0x8ee5('0xc')](_0x8ee5('0x10'),this[_0x8ee5('0x2f')][_0x8ee5('0xf')](this));}catch(_0x54a132){logger[_0x8ee5('0x11')](_0x54a132);}}else{this['imap'][_0x8ee5('0x30')](!![],this[_0x8ee5('0x31')]['bind'](this));}}};EmailImap[_0x8ee5('0x15')]['handleFetchMessage']=function(_0x4bb873){_0x4bb873['on']('body',this[_0x8ee5('0x32')][_0x8ee5('0xf')](this));_0x4bb873[_0x8ee5('0xc')]('attributes',this['handleMessageAttributes'][_0x8ee5('0xf')](this));_0x4bb873[_0x8ee5('0xc')](_0x8ee5('0x10'),this[_0x8ee5('0x33')][_0x8ee5('0xf')](this));};EmailImap['prototype']['handleMessageBody']=function(_0x500f48){simpleParser(_0x500f48,{'Iconv':Iconv},this[_0x8ee5('0x34')][_0x8ee5('0xf')](this));};EmailImap[_0x8ee5('0x15')][_0x8ee5('0x35')]=function(){};EmailImap[_0x8ee5('0x15')][_0x8ee5('0x33')]=function(){};EmailImap[_0x8ee5('0x15')]['handleSimpleParser']=function(_0x22c764,_0x32123a){if(_0x22c764){logger[_0x8ee5('0x11')](_0x22c764);}else{var _0x776ef1=this;utils[_0x8ee5('0x36')](this['account'],_0x32123a,function(_0x3be2b5){_0x776ef1[_0x8ee5('0x27')](_0x8ee5('0x8'),_0x3be2b5);});}};EmailImap[_0x8ee5('0x15')][_0x8ee5('0x2f')]=function(){this[_0x8ee5('0x0')][_0x8ee5('0x30')](!![],this[_0x8ee5('0x31')]['bind'](this));};EmailImap['prototype'][_0x8ee5('0x37')]=function(_0x20acff){this[_0x8ee5('0x12')](_0x20acff);this[_0x8ee5('0x0')][_0x8ee5('0x30')](!![],this[_0x8ee5('0x31')][_0x8ee5('0xf')](this));};EmailImap[_0x8ee5('0x15')][_0x8ee5('0x38')]=function(){this[_0x8ee5('0x27')](_0x8ee5('0x10'));};EmailImap[_0x8ee5('0x15')][_0x8ee5('0x12')]=function(_0x95184e,_0xc811a7){logger['error']('handleError',this[_0x8ee5('0xa')]['email'],JSON['stringify'](_0x95184e));var _0x4e2398='';if(_0x95184e){if(_0x95184e[_0x8ee5('0x39')]){_0x4e2398=_0x95184e[_0x8ee5('0x39')];}else{for(var _0x52acad in _0x95184e){if(_0x95184e[_0x8ee5('0x3a')](_0x52acad)){_0x4e2398+=_[_0x8ee5('0x3b')](_0x52acad)+':\x20'+_0x95184e[_0x52acad]+'\x0a';}}}}if(_0xc811a7){this[_0x8ee5('0x0')][_0x8ee5('0x10')]();}else{this[_0x8ee5('0x27')](_0x8ee5('0x11'),_0x4e2398);this['emit'](_0x8ee5('0x10'));}};module[_0x8ee5('0x3c')]=EmailImap;