09e4ad613031f6454d9d03e1149f774637c4088b
[motion2.git] / server / services / email / lib / utils.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 _0x2306=['Attachments','Title','generateXOAuth2Token','user=','utf-8','lodash','moment','randomstring','path','node-tnef','email','../../../config/environment','head','value','address','generate','@xcally.com','name','split','length','slice','join','Anonymous','isEmpty','anonymous','test','html','replace','includes','<img','forEach','push','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','attachments','attach','type','attachment','filename','attachment-','format','root','server/files/attachments/','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','indexOf','isAutoreply','parser','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','first','content','BodyHTML','<p>Empty\x20message</p>'];(function(_0x23aa6c,_0x215c2d){var _0x2e5277=function(_0x21f5a2){while(--_0x21f5a2){_0x23aa6c['push'](_0x23aa6c['shift']());}};_0x2e5277(++_0x215c2d);}(_0x2306,0x17c));var _0x6230=function(_0x4c1672,_0x279631){_0x4c1672=_0x4c1672-0x0;var _0x170dc7=_0x2306[_0x4c1672];return _0x170dc7;};'use strict';var _=require(_0x6230('0x0'));var moment=require(_0x6230('0x1'));var random=require(_0x6230('0x2'));var fs=require('fs');var path=require(_0x6230('0x3'));var util=require('util');var tnef=require(_0x6230('0x4'));var logger=require('../../../config/logger')(_0x6230('0x5'));var config=require(_0x6230('0x6'));function getAddress(_0x12bb61){var _0x5d3bb6=_[_0x6230('0x7')](_0x12bb61[_0x6230('0x8')]);return _0x5d3bb6&&_0x5d3bb6[_0x6230('0x9')]?_0x5d3bb6['address']:'anonymous'+random[_0x6230('0xa')](0x6)+_0x6230('0xb');}function getFirstName(_0x4b57a9){var _0x6625a7=_[_0x6230('0x7')](_0x4b57a9[_0x6230('0x8')]);if(_0x6625a7&&_0x6625a7[_0x6230('0xc')]){if(_0x6625a7['name']==_0x6625a7['address']){return _0x6625a7[_0x6230('0xc')]['substring'](0x0,_0x6625a7[_0x6230('0xc')]['indexOf']('@'));}var _0x3e0dc6=_0x6625a7[_0x6230('0xc')][_0x6230('0xd')](/\s+/);return _0x3e0dc6[_0x6230('0xe')]>0x1?_0x3e0dc6[_0x6230('0xf')](0x0,-0x1)[_0x6230('0x10')]('\x20'):_0x6625a7[_0x6230('0xc')];}return _0x6230('0x11');}function getLastName(_0xfb3bc0){var _0x3f30c9=_[_0x6230('0x7')](_0xfb3bc0[_0x6230('0x8')]);if(_0x3f30c9&&_0x3f30c9[_0x6230('0xc')]){var _0x349a67=_0x3f30c9[_0x6230('0xc')]['split'](/\s+/);return _0x349a67['length']>0x1?_0x349a67['pop']():'';}return'';}function getMails(_0x571132,_0x5d5a8d){var _0xa529ea='';for(var _0x2bf58e=0x0;_0x2bf58e<_0x5d5a8d[_0x6230('0x8')][_0x6230('0xe')];_0x2bf58e+=0x1){if(_0x5d5a8d[_0x6230('0x8')][_0x2bf58e][_0x6230('0x9')]!==_0x571132){if(!_[_0x6230('0x12')](_0xa529ea)){_0xa529ea+=',';}_0xa529ea+=_0x5d5a8d[_0x6230('0x8')][_0x2bf58e]['name']||_0x5d5a8d[_0x6230('0x8')][_0x2bf58e][_0x6230('0x9')]||'';_0xa529ea+='\x20<';_0xa529ea+=_0x5d5a8d[_0x6230('0x8')][_0x2bf58e][_0x6230('0x9')]?_0x5d5a8d[_0x6230('0x8')][_0x2bf58e][_0x6230('0x9')]:_0x6230('0x13')+random[_0x6230('0xa')](0x6)+_0x6230('0xb');_0xa529ea+='>';}}return _0xa529ea;}function parseEmail(_0xa2d19d,_0x598733,_0x37f678){if(_0x598733['html']){var _0x5e06e0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x5e06e0[_0x6230('0x14')](_0x598733[_0x6230('0x15')])){_0x598733[_0x6230('0x15')]=_0x598733[_0x6230('0x15')][_0x6230('0x16')](_0x5e06e0,'');}if(_0x598733[_0x6230('0x15')][_0x6230('0x17')](_0x6230('0x18'))){var _0x179109=[];_0x598733['attachments'][_0x6230('0x19')](_0x3572bd=>{_0x179109[_0x6230('0x1a')](_0x3572bd['filename']);});var _0x586fc9=/<img.*? _SRC(.*?)[^>]+>/g;var _0x36ec88=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x2ef095=_0x598733['html'][_0x6230('0x16')](_0x36ec88,_0x6230('0x1b'));var _0x5ce329=_0x2ef095[_0x6230('0x16')](_0x586fc9,_0x6230('0x1c'));for(let _0x4ca39c=0x0;_0x4ca39c<_0x179109['length'];_0x4ca39c++){var _0x4d0507=_0x5ce329[_0x6230('0x16')]('_IMG',_0x6230('0x1d')+_0x179109[_0x4ca39c]+_0x6230('0x1e'));_0x5ce329=_0x4d0507;}_0x598733['html']=_0x5ce329;}_0x37f678[_0x6230('0x1f')]=_0x598733[_0x6230('0x15')];}else{_0x37f678[_0x6230('0x1f')]=_0x598733[_0x6230('0x20')];}if(_0x37f678[_0x6230('0x1f')]){_0x37f678[_0x6230('0x1f')]=_0x37f678['body']['replace'](/<a\s+/gi,_0x6230('0x21'));}if(_0x598733['to']){_0x37f678['message']['originTo']=getMails(null,_0x598733['to']);var _0x220056=getMails(_0xa2d19d[_0x6230('0x5')],_0x598733['to']);if(!_['isEmpty'](_0x220056)){_0x37f678[_0x6230('0x22')]['cc']+=_0x220056;}}if(_0x598733['cc']){_0x37f678[_0x6230('0x22')]['originCc']=getMails(null,_0x598733['cc']);var _0x3dca45=getMails(_0xa2d19d[_0x6230('0x5')],_0x598733['cc']);if(!_['isEmpty'](_0x3dca45)){if(!_['isEmpty'](_0x37f678[_0x6230('0x22')]['cc'])){_0x37f678[_0x6230('0x22')]['cc']+=',';}_0x37f678[_0x6230('0x22')]['cc']+=_0x3dca45;}}if(!_[_0x6230('0x17')](_0x37f678[_0x6230('0x22')][_0x6230('0x23')],_0xa2d19d[_0x6230('0x5')])&&!_['includes'](_0x37f678[_0x6230('0x22')][_0x6230('0x24')],_0xa2d19d['email'])){_0x37f678[_0x6230('0x22')][_0x6230('0x25')]=_0xa2d19d[_0x6230('0x5')];}if(_0x598733[_0x6230('0x26')]&&_0x598733['attachments'][_0x6230('0xe')]){_0x37f678[_0x6230('0x22')][_0x6230('0x27')]=_0x598733[_0x6230('0x26')][_0x6230('0xe')];for(var _0x510c99=0x0,_0x1ce649,_0x2eef57,_0x5ba16f;_0x510c99<_0x598733[_0x6230('0x26')]['length'];_0x510c99+=0x1){if(_0x598733[_0x6230('0x26')][_0x510c99][_0x6230('0x28')]===_0x6230('0x29')){_0x5ba16f=_0x598733[_0x6230('0x26')][_0x510c99][_0x6230('0x2a')]||_0x6230('0x2b')+_0x510c99;_0x1ce649=util[_0x6230('0x2c')]('%s-%s',Date['now'](),_0x5ba16f);_0x2eef57=path[_0x6230('0x10')](config[_0x6230('0x2d')],_0x6230('0x2e'),_0x1ce649);fs[_0x6230('0x2f')](_0x2eef57,_0x598733['attachments'][_0x510c99]['content']);_0x37f678[_0x6230('0x22')][_0x6230('0x26')][_0x6230('0x1a')]({'name':_0x5ba16f,'basename':_0x1ce649,'type':_0x598733[_0x6230('0x26')][_0x510c99][_0x6230('0x30')],'filepath':_0x2eef57});}}}if(_0x598733['headerLines']&&_0x598733[_0x6230('0x31')]['length']>0x0){var _0x149940=[_0x6230('0x32'),_0x6230('0x33'),_0x6230('0x34')];for(var _0x2cef0b=0x0;_0x2cef0b<_0x598733[_0x6230('0x31')][_0x6230('0xe')];_0x2cef0b++){var _0x47c1cb=_[_0x6230('0x35')](_0x149940,_0x598733[_0x6230('0x31')][_0x2cef0b]['line']);if(_0x47c1cb>=0x0){_0x37f678[_0x6230('0x36')]=!![];}}}return _0x37f678;}exports[_0x6230('0x37')]=function(_0x2e9132,_0x24fc2a,_0x1b55ea){var _0xc3c5f5={'from':getAddress(_0x24fc2a['from']),'firstName':getFirstName(_0x24fc2a[_0x6230('0x38')]),'lastName':getLastName(_0x24fc2a[_0x6230('0x38')]),'mapKey':_0x6230('0x5'),'message':{'from':getMails(_0x2e9132['email'],_0x24fc2a[_0x6230('0x38')]),'to':_0x2e9132[_0x6230('0x5')],'cc':'','subject':_0x24fc2a[_0x6230('0x39')]||'','messageId':_0x24fc2a[_0x6230('0x3a')],'inReplyTo':_0x24fc2a[_0x6230('0x3b')],'sentAt':moment(_0x24fc2a[_0x6230('0x3c')])[_0x6230('0x2c')](_0x6230('0x3d')),'attach':![],'attachments':[]}};if(!_0x24fc2a[_0x6230('0x15')]&&!_0x24fc2a['textAsHtml']){var _0x5a3701=_[_0x6230('0x3e')](_0x24fc2a['attachments'],{'contentType':_0x6230('0x3f')});if(_0x5a3701[_0x6230('0xe')]){logger[_0x6230('0x40')](util[_0x6230('0x2c')](_0x6230('0x41'),_0x24fc2a[_0x6230('0x3a')]));tnef['parseBuffer'](_[_0x6230('0x42')](_0x5a3701)[_0x6230('0x43')],function(_0x55dbbe,_0x50d5e8){if(_0x50d5e8){_0x24fc2a[_0x6230('0x15')]=_0x50d5e8[_0x6230('0x44')]||_0x6230('0x45');if(_0x50d5e8[_0x6230('0x46')]){for(var _0x41af81=0x0;_0x41af81<_0x50d5e8['Attachments']['length'];_0x41af81++){var _0x2d2389=_0x50d5e8[_0x6230('0x46')][_0x41af81];_0xc3c5f5['message']['attachments'][_0x6230('0x1a')]({'filename':_0x2d2389[_0x6230('0x47')],'content':Buffer[_0x6230('0x38')](_0x2d2389['Data'])});}}}_0x1b55ea(parseEmail(_0x2e9132,_0x24fc2a,_0xc3c5f5));});}else{_0x24fc2a[_0x6230('0x15')]='<p>Empty\x20message</p>';_0x1b55ea(parseEmail(_0x2e9132,_0x24fc2a,_0xc3c5f5));}}else{_0x1b55ea(parseEmail(_0x2e9132,_0x24fc2a,_0xc3c5f5));}};exports[_0x6230('0x48')]=function(_0x430999,_0x27b3e3){var _0x109c3a=[_0x6230('0x49')+(_0x27b3e3||''),'auth=Bearer\x20'+_0x430999,'',''];return Buffer[_0x6230('0x38')](_0x109c3a['join']('\ 1'),_0x6230('0x4a'))['toString']('base64');};