Built motion from commit 47436d59.|2.6.7
[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 _0x4a74=['util','node-tnef','../../../config/logger','email','head','value','address','anonymous','generate','@xcally.com','name','substring','split','length','slice','join','Anonymous','html','test','includes','attachments','forEach','replace','_SRC','_IMG','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','isEmpty','originCc','bcc','attach','attachment','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','date','YYYY-MM-DD\x20HH:mm:ss','filter','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Data','generateXOAuth2Token','user=','auth=Bearer\x20','toString','lodash','moment','path'];(function(_0x4a3a06,_0x20b60b){var _0xf75510=function(_0x833201){while(--_0x833201){_0x4a3a06['push'](_0x4a3a06['shift']());}};_0xf75510(++_0x20b60b);}(_0x4a74,0x1a7));var _0x44a7=function(_0x47cc9a,_0x45415c){_0x47cc9a=_0x47cc9a-0x0;var _0x22bd37=_0x4a74[_0x47cc9a];return _0x22bd37;};'use strict';var _=require(_0x44a7('0x0'));var moment=require(_0x44a7('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x44a7('0x2'));var util=require(_0x44a7('0x3'));var tnef=require(_0x44a7('0x4'));var logger=require(_0x44a7('0x5'))(_0x44a7('0x6'));var config=require('../../../config/environment');function getAddress(_0x90c0ce){var _0x419286=_[_0x44a7('0x7')](_0x90c0ce[_0x44a7('0x8')]);return _0x419286&&_0x419286[_0x44a7('0x9')]?_0x419286[_0x44a7('0x9')]:_0x44a7('0xa')+random[_0x44a7('0xb')](0x6)+_0x44a7('0xc');}function getFirstName(_0x3d0d81){var _0x1f4ada=_[_0x44a7('0x7')](_0x3d0d81[_0x44a7('0x8')]);if(_0x1f4ada&&_0x1f4ada['name']){if(_0x1f4ada[_0x44a7('0xd')]==_0x1f4ada['address']){return _0x1f4ada[_0x44a7('0xd')][_0x44a7('0xe')](0x0,_0x1f4ada['name']['indexOf']('@'));}var _0xf5ac86=_0x1f4ada['name'][_0x44a7('0xf')](/\s+/);return _0xf5ac86[_0x44a7('0x10')]>0x1?_0xf5ac86[_0x44a7('0x11')](0x0,-0x1)[_0x44a7('0x12')]('\x20'):_0x1f4ada[_0x44a7('0xd')];}return _0x44a7('0x13');}function getLastName(_0x3695b1){var _0x324baf=_[_0x44a7('0x7')](_0x3695b1[_0x44a7('0x8')]);if(_0x324baf&&_0x324baf[_0x44a7('0xd')]){var _0x323d66=_0x324baf['name'][_0x44a7('0xf')](/\s+/);return _0x323d66[_0x44a7('0x10')]>0x1?_0x323d66['pop']():'';}return'';}function getMails(_0x2780ec,_0x17cd96){var _0xe066ca='';for(var _0x1cda41=0x0;_0x1cda41<_0x17cd96[_0x44a7('0x8')][_0x44a7('0x10')];_0x1cda41+=0x1){if(_0x17cd96['value'][_0x1cda41]['address']!==_0x2780ec){if(!_['isEmpty'](_0xe066ca)){_0xe066ca+=',';}_0xe066ca+=_0x17cd96[_0x44a7('0x8')][_0x1cda41]['name']||_0x17cd96[_0x44a7('0x8')][_0x1cda41][_0x44a7('0x9')]||'';_0xe066ca+='\x20<';_0xe066ca+=_0x17cd96['value'][_0x1cda41][_0x44a7('0x9')]?_0x17cd96[_0x44a7('0x8')][_0x1cda41][_0x44a7('0x9')]:_0x44a7('0xa')+random[_0x44a7('0xb')](0x6)+_0x44a7('0xc');_0xe066ca+='>';}}return _0xe066ca;}function parseEmail(_0x4391fe,_0x519284,_0x252afd){if(_0x519284[_0x44a7('0x14')]){var _0x57331a=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x57331a[_0x44a7('0x15')](_0x519284[_0x44a7('0x14')])){_0x519284['html']=_0x519284[_0x44a7('0x14')]['replace'](_0x57331a,'');}if(_0x519284[_0x44a7('0x14')][_0x44a7('0x16')]('<img')){var _0x5a599a=[];_0x519284[_0x44a7('0x17')][_0x44a7('0x18')](_0x4236c5=>{_0x5a599a['push'](_0x4236c5['filename']);});var _0x3d623f=/<img.*? _SRC(.*?)[^>]+>/g;var _0x4a7520=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xd425dd=_0x519284[_0x44a7('0x14')][_0x44a7('0x19')](_0x4a7520,_0x44a7('0x1a'));var _0x32090a=_0xd425dd[_0x44a7('0x19')](_0x3d623f,_0x44a7('0x1b'));for(let _0x161930=0x0;_0x161930<_0x5a599a[_0x44a7('0x10')];_0x161930++){var _0x5e0db9=_0x32090a[_0x44a7('0x19')](_0x44a7('0x1b'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x5a599a[_0x161930]+_0x44a7('0x1c'));_0x32090a=_0x5e0db9;}_0x519284['html']=_0x32090a;}_0x252afd['body']=_0x519284['html'];}else{_0x252afd[_0x44a7('0x1d')]=_0x519284[_0x44a7('0x1e')];}if(_0x252afd[_0x44a7('0x1d')]){_0x252afd[_0x44a7('0x1d')]=_0x252afd[_0x44a7('0x1d')][_0x44a7('0x19')](/<a\s+/gi,_0x44a7('0x1f'));}if(_0x519284['to']){_0x252afd[_0x44a7('0x20')][_0x44a7('0x21')]=getMails(null,_0x519284['to']);var _0x2d6996=getMails(_0x4391fe['email'],_0x519284['to']);if(!_[_0x44a7('0x22')](_0x2d6996)){_0x252afd[_0x44a7('0x20')]['cc']+=_0x2d6996;}}if(_0x519284['cc']){_0x252afd['message'][_0x44a7('0x23')]=getMails(null,_0x519284['cc']);var _0x56fc28=getMails(_0x4391fe[_0x44a7('0x6')],_0x519284['cc']);if(!_[_0x44a7('0x22')](_0x56fc28)){if(!_[_0x44a7('0x22')](_0x252afd[_0x44a7('0x20')]['cc'])){_0x252afd[_0x44a7('0x20')]['cc']+=',';}_0x252afd['message']['cc']+=_0x56fc28;}}if(!_['includes'](_0x252afd['message'][_0x44a7('0x21')],_0x4391fe['email'])&&!_['includes'](_0x252afd['message']['originCc'],_0x4391fe[_0x44a7('0x6')])){_0x252afd[_0x44a7('0x20')][_0x44a7('0x24')]=_0x4391fe[_0x44a7('0x6')];}if(_0x519284['attachments']&&_0x519284[_0x44a7('0x17')][_0x44a7('0x10')]){_0x252afd[_0x44a7('0x20')][_0x44a7('0x25')]=_0x519284[_0x44a7('0x17')][_0x44a7('0x10')];for(var _0x1a08d9=0x0,_0x476977,_0x2e8f39,_0x7e15a6;_0x1a08d9<_0x519284[_0x44a7('0x17')][_0x44a7('0x10')];_0x1a08d9+=0x1){if(_0x519284['attachments'][_0x1a08d9]['type']===_0x44a7('0x26')){_0x7e15a6=_0x519284[_0x44a7('0x17')][_0x1a08d9]['filename']||_0x44a7('0x27')+_0x1a08d9;_0x476977=util[_0x44a7('0x28')](_0x44a7('0x29'),Date[_0x44a7('0x2a')](),_0x7e15a6);_0x2e8f39=path[_0x44a7('0x12')](config['root'],_0x44a7('0x2b'),_0x476977);fs[_0x44a7('0x2c')](_0x2e8f39,_0x519284[_0x44a7('0x17')][_0x1a08d9][_0x44a7('0x2d')]);_0x252afd[_0x44a7('0x20')][_0x44a7('0x17')]['push']({'name':_0x7e15a6,'basename':_0x476977,'type':_0x519284[_0x44a7('0x17')][_0x1a08d9][_0x44a7('0x2e')],'filepath':_0x2e8f39});}}}if(_0x519284[_0x44a7('0x2f')]&&_0x519284[_0x44a7('0x2f')][_0x44a7('0x10')]>0x0){var _0x4276a0=[_0x44a7('0x30'),_0x44a7('0x31'),_0x44a7('0x32')];for(var _0x170014=0x0;_0x170014<_0x519284['headerLines']['length'];_0x170014++){var _0xfe4c86=_['indexOf'](_0x4276a0,_0x519284[_0x44a7('0x2f')][_0x170014][_0x44a7('0x33')]);if(_0xfe4c86>=0x0){_0x252afd[_0x44a7('0x34')]=!![];}}}return _0x252afd;}exports[_0x44a7('0x35')]=function(_0x5d0f75,_0x37e508,_0x405994){var _0x1b35a0={'from':getAddress(_0x37e508[_0x44a7('0x36')]),'firstName':getFirstName(_0x37e508[_0x44a7('0x36')]),'lastName':getLastName(_0x37e508[_0x44a7('0x36')]),'mapKey':_0x44a7('0x6'),'message':{'from':getMails(_0x5d0f75[_0x44a7('0x6')],_0x37e508['from']),'to':_0x5d0f75[_0x44a7('0x6')],'cc':'','subject':_0x37e508[_0x44a7('0x37')]||'','messageId':_0x37e508[_0x44a7('0x38')],'inReplyTo':_0x37e508['inReplyTo'],'sentAt':moment(_0x37e508[_0x44a7('0x39')])['format'](_0x44a7('0x3a')),'attach':![],'attachments':[]}};if(!_0x37e508['html']&&!_0x37e508['textAsHtml']){var _0x2b175f=_[_0x44a7('0x3b')](_0x37e508[_0x44a7('0x17')],{'contentType':'application/ms-tnef'});if(_0x2b175f['length']){logger['info'](util[_0x44a7('0x28')](_0x44a7('0x3c'),_0x37e508[_0x44a7('0x38')]));tnef[_0x44a7('0x3d')](_[_0x44a7('0x3e')](_0x2b175f)[_0x44a7('0x2d')],function(_0x129cb3,_0x51aff4){if(_0x51aff4){_0x37e508[_0x44a7('0x14')]=_0x51aff4[_0x44a7('0x3f')]||_0x44a7('0x40');if(_0x51aff4[_0x44a7('0x41')]){for(var _0x3c23d7=0x0;_0x3c23d7<_0x51aff4[_0x44a7('0x41')][_0x44a7('0x10')];_0x3c23d7++){var _0x55c3ad=_0x51aff4[_0x44a7('0x41')][_0x3c23d7];_0x1b35a0[_0x44a7('0x20')][_0x44a7('0x17')]['push']({'filename':_0x55c3ad['Title'],'content':Buffer['from'](_0x55c3ad[_0x44a7('0x42')])});}}}_0x405994(parseEmail(_0x5d0f75,_0x37e508,_0x1b35a0));});}else{_0x37e508[_0x44a7('0x14')]=_0x44a7('0x40');_0x405994(parseEmail(_0x5d0f75,_0x37e508,_0x1b35a0));}}else{_0x405994(parseEmail(_0x5d0f75,_0x37e508,_0x1b35a0));}};exports[_0x44a7('0x43')]=function(_0x29d71e,_0x1f0aa6){var _0x138ab2=[_0x44a7('0x44')+(_0x1f0aa6||''),_0x44a7('0x45')+_0x29d71e,'',''];return Buffer[_0x44a7('0x36')](_0x138ab2[_0x44a7('0x12')]('\ 1'),'utf-8')[_0x44a7('0x46')]('base64');};