Built motion from commit 25580385.|2.6.2
[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 _0x3425=['split','join','Anonymous','length','isEmpty','@xcally.com','html','replace','includes','<img','attachments','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','bcc','attach','type','attachment','format','%s-%s','now','server/files/attachments/','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','messageId','inReplyTo','date','filter','application/ms-tnef','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','toString','base64','lodash','moment','path','util','node-tnef','../../../config/logger','value','address','anonymous','generate','head','name','indexOf'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x3425,0x1b5));var _0x5342=function(_0xf57145,_0x5cd603){_0xf57145=_0xf57145-0x0;var _0x3358b1=_0x3425[_0xf57145];return _0x3358b1;};'use strict';var _=require(_0x5342('0x0'));var moment=require(_0x5342('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x5342('0x2'));var util=require(_0x5342('0x3'));var tnef=require(_0x5342('0x4'));var logger=require(_0x5342('0x5'))('email');var config=require('../../../config/environment');function getAddress(_0xfa2faf){var _0x2e47cc=_['head'](_0xfa2faf[_0x5342('0x6')]);return _0x2e47cc&&_0x2e47cc[_0x5342('0x7')]?_0x2e47cc[_0x5342('0x7')]:_0x5342('0x8')+random[_0x5342('0x9')](0x6)+'@xcally.com';}function getFirstName(_0x7a008a){var _0x5a2b3d=_[_0x5342('0xa')](_0x7a008a[_0x5342('0x6')]);if(_0x5a2b3d&&_0x5a2b3d['name']){if(_0x5a2b3d['name']==_0x5a2b3d[_0x5342('0x7')]){return _0x5a2b3d[_0x5342('0xb')]['substring'](0x0,_0x5a2b3d[_0x5342('0xb')][_0x5342('0xc')]('@'));}var _0x52779b=_0x5a2b3d['name'][_0x5342('0xd')](/\s+/);return _0x52779b['length']>0x1?_0x52779b['slice'](0x0,-0x1)[_0x5342('0xe')]('\x20'):_0x5a2b3d[_0x5342('0xb')];}return _0x5342('0xf');}function getLastName(_0x463ce2){var _0x330267=_[_0x5342('0xa')](_0x463ce2['value']);if(_0x330267&&_0x330267[_0x5342('0xb')]){var _0x43a962=_0x330267[_0x5342('0xb')][_0x5342('0xd')](/\s+/);return _0x43a962[_0x5342('0x10')]>0x1?_0x43a962['pop']():'';}return'';}function getMails(_0x35437e,_0x211226){var _0x3b34dc='';for(var _0x36dc88=0x0;_0x36dc88<_0x211226[_0x5342('0x6')][_0x5342('0x10')];_0x36dc88+=0x1){if(_0x211226[_0x5342('0x6')][_0x36dc88]['address']!==_0x35437e){if(!_[_0x5342('0x11')](_0x3b34dc)){_0x3b34dc+=',';}_0x3b34dc+=_0x211226[_0x5342('0x6')][_0x36dc88]['name']||_0x211226[_0x5342('0x6')][_0x36dc88][_0x5342('0x7')]||'';_0x3b34dc+='\x20<';_0x3b34dc+=_0x211226[_0x5342('0x6')][_0x36dc88][_0x5342('0x7')]?_0x211226['value'][_0x36dc88]['address']:'anonymous'+random[_0x5342('0x9')](0x6)+_0x5342('0x12');_0x3b34dc+='>';}}return _0x3b34dc;}function parseEmail(_0x35676a,_0x291625,_0x3fcff9){if(_0x291625['html']){var _0x2e6037=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x2e6037['test'](_0x291625[_0x5342('0x13')])){_0x291625['html']=_0x291625[_0x5342('0x13')][_0x5342('0x14')](_0x2e6037,'');}if(_0x291625[_0x5342('0x13')][_0x5342('0x15')](_0x5342('0x16'))){var _0x557e79=[];_0x291625[_0x5342('0x17')]['forEach'](_0x343291=>{_0x557e79[_0x5342('0x18')](_0x343291[_0x5342('0x19')]);});var _0x4a4d8e=/<img.*? _SRC(.*?)[^>]+>/g;var _0x48177c=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x545329=_0x291625[_0x5342('0x13')][_0x5342('0x14')](_0x48177c,_0x5342('0x1a'));var _0x36cef3=_0x545329[_0x5342('0x14')](_0x4a4d8e,_0x5342('0x1b'));for(let _0x135c6e=0x0;_0x135c6e<_0x557e79[_0x5342('0x10')];_0x135c6e++){var _0x270e2d=_0x36cef3[_0x5342('0x14')]('_IMG',_0x5342('0x1c')+_0x557e79[_0x135c6e]+_0x5342('0x1d'));_0x36cef3=_0x270e2d;}_0x291625['html']=_0x36cef3;}_0x3fcff9[_0x5342('0x1e')]=_0x291625['html'];}else{_0x3fcff9[_0x5342('0x1e')]=_0x291625[_0x5342('0x1f')];}if(_0x3fcff9[_0x5342('0x1e')]){_0x3fcff9['body']=_0x3fcff9['body'][_0x5342('0x14')](/<a\s+/gi,_0x5342('0x20'));}if(_0x291625['to']){_0x3fcff9[_0x5342('0x21')][_0x5342('0x22')]=getMails(null,_0x291625['to']);var _0x5786dd=getMails(_0x35676a[_0x5342('0x23')],_0x291625['to']);if(!_[_0x5342('0x11')](_0x5786dd)){_0x3fcff9['message']['cc']+=_0x5786dd;}}if(_0x291625['cc']){_0x3fcff9[_0x5342('0x21')][_0x5342('0x24')]=getMails(null,_0x291625['cc']);var _0xcf003=getMails(_0x35676a[_0x5342('0x23')],_0x291625['cc']);if(!_[_0x5342('0x11')](_0xcf003)){if(!_[_0x5342('0x11')](_0x3fcff9[_0x5342('0x21')]['cc'])){_0x3fcff9[_0x5342('0x21')]['cc']+=',';}_0x3fcff9[_0x5342('0x21')]['cc']+=_0xcf003;}}if(!_['includes'](_0x3fcff9[_0x5342('0x21')][_0x5342('0x22')],_0x35676a[_0x5342('0x23')])&&!_[_0x5342('0x15')](_0x3fcff9['message']['originCc'],_0x35676a[_0x5342('0x23')])){_0x3fcff9[_0x5342('0x21')][_0x5342('0x25')]=_0x35676a[_0x5342('0x23')];}if(_0x291625[_0x5342('0x17')]&&_0x291625[_0x5342('0x17')][_0x5342('0x10')]){_0x3fcff9[_0x5342('0x21')][_0x5342('0x26')]=_0x291625['attachments'][_0x5342('0x10')];for(var _0x4fa9ed=0x0,_0x4788ad,_0x1a5a36,_0x4e7a21;_0x4fa9ed<_0x291625[_0x5342('0x17')]['length'];_0x4fa9ed+=0x1){if(_0x291625[_0x5342('0x17')][_0x4fa9ed][_0x5342('0x27')]===_0x5342('0x28')){_0x4e7a21=_0x291625[_0x5342('0x17')][_0x4fa9ed]['filename']||'attachment-'+_0x4fa9ed;_0x4788ad=util[_0x5342('0x29')](_0x5342('0x2a'),Date[_0x5342('0x2b')](),_0x4e7a21);_0x1a5a36=path[_0x5342('0xe')](config['root'],_0x5342('0x2c'),_0x4788ad);fs[_0x5342('0x2d')](_0x1a5a36,_0x291625['attachments'][_0x4fa9ed][_0x5342('0x2e')]);_0x3fcff9[_0x5342('0x21')][_0x5342('0x17')][_0x5342('0x18')]({'name':_0x4e7a21,'basename':_0x4788ad,'type':_0x291625[_0x5342('0x17')][_0x4fa9ed][_0x5342('0x2f')],'filepath':_0x1a5a36});}}}if(_0x291625[_0x5342('0x30')]&&_0x291625['headerLines']['length']>0x0){var _0x217b3e=[_0x5342('0x31'),_0x5342('0x32'),_0x5342('0x33')];for(var _0x21649e=0x0;_0x21649e<_0x291625['headerLines'][_0x5342('0x10')];_0x21649e++){var _0x599132=_['indexOf'](_0x217b3e,_0x291625[_0x5342('0x30')][_0x21649e][_0x5342('0x34')]);if(_0x599132>=0x0){_0x3fcff9[_0x5342('0x35')]=!![];}}}return _0x3fcff9;}exports[_0x5342('0x36')]=function(_0x218550,_0x2c3f28,_0x22ea68){var _0x4746ec={'from':getAddress(_0x2c3f28['from']),'firstName':getFirstName(_0x2c3f28['from']),'lastName':getLastName(_0x2c3f28[_0x5342('0x37')]),'mapKey':'email','message':{'from':getMails(_0x218550[_0x5342('0x23')],_0x2c3f28['from']),'to':_0x218550['email'],'cc':'','subject':_0x2c3f28[_0x5342('0x38')]||'','messageId':_0x2c3f28[_0x5342('0x39')],'inReplyTo':_0x2c3f28[_0x5342('0x3a')],'sentAt':moment(_0x2c3f28[_0x5342('0x3b')])[_0x5342('0x29')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x2c3f28[_0x5342('0x13')]&&!_0x2c3f28['textAsHtml']){var _0x1a59c9=_[_0x5342('0x3c')](_0x2c3f28[_0x5342('0x17')],{'contentType':_0x5342('0x3d')});if(_0x1a59c9[_0x5342('0x10')]){logger['info'](util[_0x5342('0x29')](_0x5342('0x3e'),_0x2c3f28[_0x5342('0x39')]));tnef[_0x5342('0x3f')](_[_0x5342('0x40')](_0x1a59c9)[_0x5342('0x2e')],function(_0x29134c,_0x2417e9){if(_0x2417e9){_0x2c3f28[_0x5342('0x13')]=_0x2417e9[_0x5342('0x41')]||_0x5342('0x42');if(_0x2417e9['Attachments']){for(var _0x23c036=0x0;_0x23c036<_0x2417e9[_0x5342('0x43')][_0x5342('0x10')];_0x23c036++){var _0x4f92a0=_0x2417e9[_0x5342('0x43')][_0x23c036];_0x4746ec[_0x5342('0x21')][_0x5342('0x17')][_0x5342('0x18')]({'filename':_0x4f92a0[_0x5342('0x44')],'content':Buffer[_0x5342('0x37')](_0x4f92a0[_0x5342('0x45')])});}}}_0x22ea68(parseEmail(_0x218550,_0x2c3f28,_0x4746ec));});}else{_0x2c3f28['html']=_0x5342('0x42');_0x22ea68(parseEmail(_0x218550,_0x2c3f28,_0x4746ec));}}else{_0x22ea68(parseEmail(_0x218550,_0x2c3f28,_0x4746ec));}};exports[_0x5342('0x46')]=function(_0x5da43d,_0x415a35){var _0xe202c0=[_0x5342('0x47')+(_0x415a35||''),_0x5342('0x48')+_0x5da43d,'',''];return Buffer[_0x5342('0x37')](_0xe202c0[_0x5342('0xe')]('\ 1'),'utf-8')[_0x5342('0x49')](_0x5342('0x4a'));};