1cc485c625a790f6035d2785f1738c08388daa0d
[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 _0xf37a=['user=','auth=Bearer\x20','utf-8','base64','lodash','randomstring','path','util','node-tnef','../../../config/logger','email','head','value','address','generate','@xcally.com','substring','name','length','slice','join','split','pop','isEmpty','html','test','replace','<img','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','includes','attachments','attach','type','attachment','attachment-','format','%s-%s','root','server/files/attachments/','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','indexOf','line','isAutoreply','from','subject','inReplyTo','date','filter','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','first','BodyHTML','Attachments','Title','<p>Empty\x20message</p>','generateXOAuth2Token'];(function(_0x455a64,_0x10c8f4){var _0x45599f=function(_0x4fb0cc){while(--_0x4fb0cc){_0x455a64['push'](_0x455a64['shift']());}};_0x45599f(++_0x10c8f4);}(_0xf37a,0x162));var _0xaf37=function(_0xae6a7e,_0x117c15){_0xae6a7e=_0xae6a7e-0x0;var _0x45800d=_0xf37a[_0xae6a7e];return _0x45800d;};'use strict';var _=require(_0xaf37('0x0'));var moment=require('moment');var random=require(_0xaf37('0x1'));var fs=require('fs');var path=require(_0xaf37('0x2'));var util=require(_0xaf37('0x3'));var tnef=require(_0xaf37('0x4'));var logger=require(_0xaf37('0x5'))(_0xaf37('0x6'));var config=require('../../../config/environment');function getAddress(_0x189198){var _0xb89c0e=_[_0xaf37('0x7')](_0x189198[_0xaf37('0x8')]);return _0xb89c0e&&_0xb89c0e[_0xaf37('0x9')]?_0xb89c0e[_0xaf37('0x9')]:'anonymous'+random[_0xaf37('0xa')](0x6)+_0xaf37('0xb');}function getFirstName(_0x114967){var _0x4138b1=_[_0xaf37('0x7')](_0x114967[_0xaf37('0x8')]);if(_0x4138b1&&_0x4138b1['name']){if(_0x4138b1['name']==_0x4138b1[_0xaf37('0x9')]){return _0x4138b1['name'][_0xaf37('0xc')](0x0,_0x4138b1[_0xaf37('0xd')]['indexOf']('@'));}var _0x1e4add=_0x4138b1[_0xaf37('0xd')]['split'](/\s+/);return _0x1e4add[_0xaf37('0xe')]>0x1?_0x1e4add[_0xaf37('0xf')](0x0,-0x1)[_0xaf37('0x10')]('\x20'):_0x4138b1[_0xaf37('0xd')];}return'Anonymous';}function getLastName(_0x8983f7){var _0x5803ad=_[_0xaf37('0x7')](_0x8983f7[_0xaf37('0x8')]);if(_0x5803ad&&_0x5803ad[_0xaf37('0xd')]){var _0x436c05=_0x5803ad[_0xaf37('0xd')][_0xaf37('0x11')](/\s+/);return _0x436c05[_0xaf37('0xe')]>0x1?_0x436c05[_0xaf37('0x12')]():'';}return'';}function getMails(_0x4d650c,_0x4821a8){var _0x18d6eb='';for(var _0x5122ba=0x0;_0x5122ba<_0x4821a8['value'][_0xaf37('0xe')];_0x5122ba+=0x1){if(_0x4821a8[_0xaf37('0x8')][_0x5122ba][_0xaf37('0x9')]!==_0x4d650c){if(!_[_0xaf37('0x13')](_0x18d6eb)){_0x18d6eb+=',';}_0x18d6eb+=_0x4821a8[_0xaf37('0x8')][_0x5122ba][_0xaf37('0xd')]||_0x4821a8[_0xaf37('0x8')][_0x5122ba][_0xaf37('0x9')]||'';_0x18d6eb+='\x20<';_0x18d6eb+=_0x4821a8[_0xaf37('0x8')][_0x5122ba][_0xaf37('0x9')]?_0x4821a8[_0xaf37('0x8')][_0x5122ba]['address']:'anonymous'+random[_0xaf37('0xa')](0x6)+'@xcally.com';_0x18d6eb+='>';}}return _0x18d6eb;}function parseEmail(_0x3b2d76,_0x5d6f9a,_0x557791){if(_0x5d6f9a[_0xaf37('0x14')]){var _0x5ba81e=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x5ba81e[_0xaf37('0x15')](_0x5d6f9a['html'])){_0x5d6f9a['html']=_0x5d6f9a[_0xaf37('0x14')][_0xaf37('0x16')](_0x5ba81e,'');}if(_0x5d6f9a[_0xaf37('0x14')]['includes'](_0xaf37('0x17'))){var _0x97ec15=[];_0x5d6f9a['attachments']['forEach'](_0x31c1b2=>{_0x97ec15[_0xaf37('0x18')](_0x31c1b2[_0xaf37('0x19')]);});var _0x34aa59=/<img.*? _SRC(.*?)[^>]+>/g;var _0x2af0b3=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x833b3=_0x5d6f9a['html'][_0xaf37('0x16')](_0x2af0b3,_0xaf37('0x1a'));var _0x13243a=_0x833b3['replace'](_0x34aa59,_0xaf37('0x1b'));for(let _0x515229=0x0;_0x515229<_0x97ec15[_0xaf37('0xe')];_0x515229++){var _0x35fa36=_0x13243a[_0xaf37('0x16')](_0xaf37('0x1b'),_0xaf37('0x1c')+_0x97ec15[_0x515229]+_0xaf37('0x1d'));_0x13243a=_0x35fa36;}_0x5d6f9a['html']=_0x13243a;}_0x557791['body']=_0x5d6f9a[_0xaf37('0x14')];}else{_0x557791[_0xaf37('0x1e')]=_0x5d6f9a[_0xaf37('0x1f')];}if(_0x557791['body']){_0x557791[_0xaf37('0x1e')]=_0x557791[_0xaf37('0x1e')][_0xaf37('0x16')](/<a\s+/gi,_0xaf37('0x20'));}if(_0x5d6f9a['to']){_0x557791[_0xaf37('0x21')][_0xaf37('0x22')]=getMails(null,_0x5d6f9a['to']);var _0x439ee0=getMails(_0x3b2d76[_0xaf37('0x6')],_0x5d6f9a['to']);if(!_[_0xaf37('0x13')](_0x439ee0)){_0x557791['message']['cc']+=_0x439ee0;}}if(_0x5d6f9a['cc']){_0x557791[_0xaf37('0x21')]['originCc']=getMails(null,_0x5d6f9a['cc']);var _0xc1cc84=getMails(_0x3b2d76[_0xaf37('0x6')],_0x5d6f9a['cc']);if(!_[_0xaf37('0x13')](_0xc1cc84)){if(!_[_0xaf37('0x13')](_0x557791['message']['cc'])){_0x557791[_0xaf37('0x21')]['cc']+=',';}_0x557791[_0xaf37('0x21')]['cc']+=_0xc1cc84;}}if(!_[_0xaf37('0x23')](_0x557791['message'][_0xaf37('0x22')],_0x3b2d76['email'])&&!_[_0xaf37('0x23')](_0x557791[_0xaf37('0x21')]['originCc'],_0x3b2d76[_0xaf37('0x6')])){_0x557791[_0xaf37('0x21')]['bcc']=_0x3b2d76[_0xaf37('0x6')];}if(_0x5d6f9a[_0xaf37('0x24')]&&_0x5d6f9a[_0xaf37('0x24')][_0xaf37('0xe')]){_0x557791[_0xaf37('0x21')][_0xaf37('0x25')]=_0x5d6f9a[_0xaf37('0x24')]['length'];for(var _0x8771b0=0x0,_0x3b8acf,_0x527ea8,_0x1e5d05;_0x8771b0<_0x5d6f9a[_0xaf37('0x24')][_0xaf37('0xe')];_0x8771b0+=0x1){if(_0x5d6f9a[_0xaf37('0x24')][_0x8771b0][_0xaf37('0x26')]===_0xaf37('0x27')){_0x1e5d05=_0x5d6f9a[_0xaf37('0x24')][_0x8771b0]['filename']||_0xaf37('0x28')+_0x8771b0;_0x3b8acf=util[_0xaf37('0x29')](_0xaf37('0x2a'),Date['now'](),_0x1e5d05);_0x527ea8=path['join'](config[_0xaf37('0x2b')],_0xaf37('0x2c'),_0x3b8acf);fs[_0xaf37('0x2d')](_0x527ea8,_0x5d6f9a['attachments'][_0x8771b0]['content']);_0x557791[_0xaf37('0x21')][_0xaf37('0x24')][_0xaf37('0x18')]({'name':_0x1e5d05,'basename':_0x3b8acf,'type':_0x5d6f9a[_0xaf37('0x24')][_0x8771b0][_0xaf37('0x2e')],'filepath':_0x527ea8});}}}if(_0x5d6f9a[_0xaf37('0x2f')]&&_0x5d6f9a['headerLines'][_0xaf37('0xe')]>0x0){var _0x163ea8=[_0xaf37('0x30'),'X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply'];for(var _0x2cbdd0=0x0;_0x2cbdd0<_0x5d6f9a[_0xaf37('0x2f')][_0xaf37('0xe')];_0x2cbdd0++){var _0x178209=_[_0xaf37('0x31')](_0x163ea8,_0x5d6f9a[_0xaf37('0x2f')][_0x2cbdd0][_0xaf37('0x32')]);if(_0x178209>=0x0){_0x557791[_0xaf37('0x33')]=!![];}}}return _0x557791;}exports['parser']=function(_0x267a01,_0x445c69,_0x2fb597){var _0x5453f1={'from':getAddress(_0x445c69[_0xaf37('0x34')]),'firstName':getFirstName(_0x445c69['from']),'lastName':getLastName(_0x445c69[_0xaf37('0x34')]),'mapKey':_0xaf37('0x6'),'message':{'from':getMails(_0x267a01[_0xaf37('0x6')],_0x445c69['from']),'to':_0x267a01[_0xaf37('0x6')],'cc':'','subject':_0x445c69[_0xaf37('0x35')]||'','messageId':_0x445c69['messageId'],'inReplyTo':_0x445c69[_0xaf37('0x36')],'sentAt':moment(_0x445c69[_0xaf37('0x37')])[_0xaf37('0x29')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x445c69[_0xaf37('0x14')]&&!_0x445c69['textAsHtml']){var _0xc42a74=_[_0xaf37('0x38')](_0x445c69[_0xaf37('0x24')],{'contentType':'application/ms-tnef'});if(_0xc42a74['length']){logger[_0xaf37('0x39')](util[_0xaf37('0x29')](_0xaf37('0x3a'),_0x445c69[_0xaf37('0x3b')]));tnef['parseBuffer'](_[_0xaf37('0x3c')](_0xc42a74)['content'],function(_0x5e3552,_0x1707df){if(_0x1707df){_0x445c69[_0xaf37('0x14')]=_0x1707df[_0xaf37('0x3d')]||'<p>Empty\x20message</p>';if(_0x1707df[_0xaf37('0x3e')]){for(var _0x4ac483=0x0;_0x4ac483<_0x1707df[_0xaf37('0x3e')][_0xaf37('0xe')];_0x4ac483++){var _0x301b36=_0x1707df['Attachments'][_0x4ac483];_0x5453f1[_0xaf37('0x21')]['attachments'][_0xaf37('0x18')]({'filename':_0x301b36[_0xaf37('0x3f')],'content':Buffer[_0xaf37('0x34')](_0x301b36['Data'])});}}}_0x2fb597(parseEmail(_0x267a01,_0x445c69,_0x5453f1));});}else{_0x445c69[_0xaf37('0x14')]=_0xaf37('0x40');_0x2fb597(parseEmail(_0x267a01,_0x445c69,_0x5453f1));}}else{_0x2fb597(parseEmail(_0x267a01,_0x445c69,_0x5453f1));}};exports[_0xaf37('0x41')]=function(_0x24a725,_0x3563f1){var _0x27287a=[_0xaf37('0x42')+(_0x3563f1||''),_0xaf37('0x43')+_0x24a725,'',''];return Buffer[_0xaf37('0x34')](_0x27287a[_0xaf37('0x10')]('\ 1'),_0xaf37('0x44'))['toString'](_0xaf37('0x45'));};