4b490c48c1e4e0e51b6633bcbfcf3eab301333d4
[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 _0x7858=['length','slice','join','Anonymous','pop','isEmpty','anonymous','html','replace','includes','<img','attachments','forEach','push','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','textAsHtml','message','originTo','originCc','bcc','attach','type','attachment','attachment-','%s-%s','now','server/files/attachments/','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','parser','from','subject','messageId','inReplyTo','date','format','YYYY-MM-DD\x20HH:mm:ss','filter','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','auth=Bearer\x20','utf-8','base64','lodash','moment','randomstring','util','node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','generate','@xcally.com','name','substring','indexOf','split'];(function(_0x151721,_0x20d5bc){var _0x2deaa7=function(_0x499812){while(--_0x499812){_0x151721['push'](_0x151721['shift']());}};_0x2deaa7(++_0x20d5bc);}(_0x7858,0x117));var _0x8785=function(_0x259520,_0x1f876c){_0x259520=_0x259520-0x0;var _0x4dbe8e=_0x7858[_0x259520];return _0x4dbe8e;};'use strict';var _=require(_0x8785('0x0'));var moment=require(_0x8785('0x1'));var random=require(_0x8785('0x2'));var fs=require('fs');var path=require('path');var util=require(_0x8785('0x3'));var tnef=require(_0x8785('0x4'));var logger=require(_0x8785('0x5'))(_0x8785('0x6'));var config=require(_0x8785('0x7'));function getAddress(_0x802e54){var _0x5419b0=_[_0x8785('0x8')](_0x802e54[_0x8785('0x9')]);return _0x5419b0&&_0x5419b0[_0x8785('0xa')]?_0x5419b0[_0x8785('0xa')]:'anonymous'+random[_0x8785('0xb')](0x6)+_0x8785('0xc');}function getFirstName(_0x117969){var _0x1cd451=_[_0x8785('0x8')](_0x117969[_0x8785('0x9')]);if(_0x1cd451&&_0x1cd451[_0x8785('0xd')]){if(_0x1cd451[_0x8785('0xd')]==_0x1cd451[_0x8785('0xa')]){return _0x1cd451[_0x8785('0xd')][_0x8785('0xe')](0x0,_0x1cd451[_0x8785('0xd')][_0x8785('0xf')]('@'));}var _0x17509d=_0x1cd451['name'][_0x8785('0x10')](/\s+/);return _0x17509d[_0x8785('0x11')]>0x1?_0x17509d[_0x8785('0x12')](0x0,-0x1)[_0x8785('0x13')]('\x20'):_0x1cd451[_0x8785('0xd')];}return _0x8785('0x14');}function getLastName(_0x5aa488){var _0x1c9b23=_[_0x8785('0x8')](_0x5aa488['value']);if(_0x1c9b23&&_0x1c9b23[_0x8785('0xd')]){var _0x123ff7=_0x1c9b23[_0x8785('0xd')]['split'](/\s+/);return _0x123ff7[_0x8785('0x11')]>0x1?_0x123ff7[_0x8785('0x15')]():'';}return'';}function getMails(_0x442777,_0x48ecb4){var _0x356972='';for(var _0x510b2f=0x0;_0x510b2f<_0x48ecb4[_0x8785('0x9')][_0x8785('0x11')];_0x510b2f+=0x1){if(_0x48ecb4[_0x8785('0x9')][_0x510b2f][_0x8785('0xa')]!==_0x442777){if(!_[_0x8785('0x16')](_0x356972)){_0x356972+=',';}_0x356972+=_0x48ecb4[_0x8785('0x9')][_0x510b2f][_0x8785('0xd')]||_0x48ecb4[_0x8785('0x9')][_0x510b2f][_0x8785('0xa')]||'';_0x356972+='\x20<';_0x356972+=_0x48ecb4[_0x8785('0x9')][_0x510b2f][_0x8785('0xa')]?_0x48ecb4[_0x8785('0x9')][_0x510b2f]['address']:_0x8785('0x17')+random[_0x8785('0xb')](0x6)+_0x8785('0xc');_0x356972+='>';}}return _0x356972;}function parseEmail(_0x25d94b,_0x403e8f,_0x3ead17){if(_0x403e8f[_0x8785('0x18')]){var _0x1e1190=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1e1190['test'](_0x403e8f[_0x8785('0x18')])){_0x403e8f[_0x8785('0x18')]=_0x403e8f[_0x8785('0x18')][_0x8785('0x19')](_0x1e1190,'');}if(_0x403e8f['html'][_0x8785('0x1a')](_0x8785('0x1b'))){var _0x39770e=[];_0x403e8f[_0x8785('0x1c')][_0x8785('0x1d')](_0xd9a23a=>{_0x39770e[_0x8785('0x1e')](_0xd9a23a['filename']);});var _0x48706f=/<img.*? _SRC(.*?)[^>]+>/g;var _0x131c27=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x5df682=_0x403e8f[_0x8785('0x18')][_0x8785('0x19')](_0x131c27,_0x8785('0x1f'));var _0x5b5da8=_0x5df682[_0x8785('0x19')](_0x48706f,_0x8785('0x20'));for(let _0x18ef13=0x0;_0x18ef13<_0x39770e[_0x8785('0x11')];_0x18ef13++){var _0x38f4a7=_0x5b5da8[_0x8785('0x19')](_0x8785('0x20'),_0x8785('0x21')+_0x39770e[_0x18ef13]+'\x20]</span>');_0x5b5da8=_0x38f4a7;}_0x403e8f[_0x8785('0x18')]=_0x5b5da8;}_0x3ead17[_0x8785('0x22')]=_0x403e8f[_0x8785('0x18')];}else{_0x3ead17[_0x8785('0x22')]=_0x403e8f[_0x8785('0x23')];}if(_0x3ead17['body']){_0x3ead17[_0x8785('0x22')]=_0x3ead17[_0x8785('0x22')][_0x8785('0x19')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x403e8f['to']){_0x3ead17[_0x8785('0x24')][_0x8785('0x25')]=getMails(null,_0x403e8f['to']);var _0x3eefb4=getMails(_0x25d94b[_0x8785('0x6')],_0x403e8f['to']);if(!_[_0x8785('0x16')](_0x3eefb4)){_0x3ead17[_0x8785('0x24')]['cc']+=_0x3eefb4;}}if(_0x403e8f['cc']){_0x3ead17['message'][_0x8785('0x26')]=getMails(null,_0x403e8f['cc']);var _0x214d94=getMails(_0x25d94b[_0x8785('0x6')],_0x403e8f['cc']);if(!_[_0x8785('0x16')](_0x214d94)){if(!_[_0x8785('0x16')](_0x3ead17[_0x8785('0x24')]['cc'])){_0x3ead17[_0x8785('0x24')]['cc']+=',';}_0x3ead17['message']['cc']+=_0x214d94;}}if(!_[_0x8785('0x1a')](_0x3ead17[_0x8785('0x24')][_0x8785('0x25')],_0x25d94b[_0x8785('0x6')])&&!_[_0x8785('0x1a')](_0x3ead17[_0x8785('0x24')][_0x8785('0x26')],_0x25d94b['email'])){_0x3ead17[_0x8785('0x24')][_0x8785('0x27')]=_0x25d94b[_0x8785('0x6')];}if(_0x403e8f[_0x8785('0x1c')]&&_0x403e8f[_0x8785('0x1c')][_0x8785('0x11')]){_0x3ead17[_0x8785('0x24')][_0x8785('0x28')]=_0x403e8f[_0x8785('0x1c')]['length'];for(var _0x40c956=0x0,_0x4d295a,_0xf9f48c,_0xe89202;_0x40c956<_0x403e8f[_0x8785('0x1c')][_0x8785('0x11')];_0x40c956+=0x1){if(_0x403e8f['attachments'][_0x40c956][_0x8785('0x29')]===_0x8785('0x2a')){_0xe89202=_0x403e8f[_0x8785('0x1c')][_0x40c956]['filename']||_0x8785('0x2b')+_0x40c956;_0x4d295a=util['format'](_0x8785('0x2c'),Date[_0x8785('0x2d')](),_0xe89202);_0xf9f48c=path[_0x8785('0x13')](config['root'],_0x8785('0x2e'),_0x4d295a);fs[_0x8785('0x2f')](_0xf9f48c,_0x403e8f[_0x8785('0x1c')][_0x40c956][_0x8785('0x30')]);_0x3ead17[_0x8785('0x24')][_0x8785('0x1c')][_0x8785('0x1e')]({'name':_0xe89202,'basename':_0x4d295a,'type':_0x403e8f[_0x8785('0x1c')][_0x40c956][_0x8785('0x31')],'filepath':_0xf9f48c});}}}if(_0x403e8f[_0x8785('0x32')]&&_0x403e8f[_0x8785('0x32')][_0x8785('0x11')]>0x0){var _0x324c97=[_0x8785('0x33'),_0x8785('0x34'),_0x8785('0x35')];for(var _0x277777=0x0;_0x277777<_0x403e8f[_0x8785('0x32')][_0x8785('0x11')];_0x277777++){var _0x312694=_[_0x8785('0xf')](_0x324c97,_0x403e8f[_0x8785('0x32')][_0x277777]['line']);if(_0x312694>=0x0){_0x3ead17['isAutoreply']=!![];}}}return _0x3ead17;}exports[_0x8785('0x36')]=function(_0x217072,_0x27522d,_0x1ec0e8){var _0x5bc744={'from':getAddress(_0x27522d['from']),'firstName':getFirstName(_0x27522d[_0x8785('0x37')]),'lastName':getLastName(_0x27522d[_0x8785('0x37')]),'mapKey':_0x8785('0x6'),'message':{'from':getMails(_0x217072['email'],_0x27522d[_0x8785('0x37')]),'to':_0x217072[_0x8785('0x6')],'cc':'','subject':_0x27522d[_0x8785('0x38')]||'','messageId':_0x27522d[_0x8785('0x39')],'inReplyTo':_0x27522d[_0x8785('0x3a')],'sentAt':moment(_0x27522d[_0x8785('0x3b')])[_0x8785('0x3c')](_0x8785('0x3d')),'attach':![],'attachments':[]}};if(!_0x27522d[_0x8785('0x18')]&&!_0x27522d[_0x8785('0x23')]){var _0xa4b7f0=_[_0x8785('0x3e')](_0x27522d[_0x8785('0x1c')],{'contentType':'application/ms-tnef'});if(_0xa4b7f0['length']){logger[_0x8785('0x3f')](util[_0x8785('0x3c')](_0x8785('0x40'),_0x27522d[_0x8785('0x39')]));tnef['parseBuffer'](_['first'](_0xa4b7f0)['content'],function(_0x33c62f,_0x57580e){if(_0x57580e){_0x27522d[_0x8785('0x18')]=_0x57580e[_0x8785('0x41')]||_0x8785('0x42');if(_0x57580e[_0x8785('0x43')]){for(var _0x1f72db=0x0;_0x1f72db<_0x57580e[_0x8785('0x43')][_0x8785('0x11')];_0x1f72db++){var _0x3c1dd3=_0x57580e[_0x8785('0x43')][_0x1f72db];_0x5bc744[_0x8785('0x24')]['attachments']['push']({'filename':_0x3c1dd3[_0x8785('0x44')],'content':Buffer[_0x8785('0x37')](_0x3c1dd3[_0x8785('0x45')])});}}}_0x1ec0e8(parseEmail(_0x217072,_0x27522d,_0x5bc744));});}else{_0x27522d[_0x8785('0x18')]=_0x8785('0x42');_0x1ec0e8(parseEmail(_0x217072,_0x27522d,_0x5bc744));}}else{_0x1ec0e8(parseEmail(_0x217072,_0x27522d,_0x5bc744));}};exports[_0x8785('0x46')]=function(_0x43be81,_0x446dff){var _0x1b04c8=['user='+(_0x446dff||''),_0x8785('0x47')+_0x43be81,'',''];return Buffer[_0x8785('0x37')](_0x1b04c8[_0x8785('0x13')]('\ 1'),_0x8785('0x48'))['toString'](_0x8785('0x49'));};