Built motion from commit b5413ace.|2.6.9
[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 _0x0b7b=['format','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','parseBuffer','content','BodyHTML','<p>Empty\x20message</p>','Attachments','generateXOAuth2Token','utf-8','toString','moment','randomstring','path','node-tnef','../../../config/logger','email','../../../config/environment','head','address','anonymous','generate','@xcally.com','value','name','substring','indexOf','split','slice','join','Anonymous','length','pop','isEmpty','html','test','replace','includes','<img','attachments','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','attach','type','attachment','attachment-','%s-%s','now','root','server/files/attachments/','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','parser','from','subject','inReplyTo'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x0b7b,0x1c3));var _0xb0b7=function(_0x11c2f5,_0x40dc82){_0x11c2f5=_0x11c2f5-0x0;var _0xb00632=_0x0b7b[_0x11c2f5];return _0xb00632;};'use strict';var _=require('lodash');var moment=require(_0xb0b7('0x0'));var random=require(_0xb0b7('0x1'));var fs=require('fs');var path=require(_0xb0b7('0x2'));var util=require('util');var tnef=require(_0xb0b7('0x3'));var logger=require(_0xb0b7('0x4'))(_0xb0b7('0x5'));var config=require(_0xb0b7('0x6'));function getAddress(_0x339a00){var _0x5602bd=_[_0xb0b7('0x7')](_0x339a00['value']);return _0x5602bd&&_0x5602bd[_0xb0b7('0x8')]?_0x5602bd['address']:_0xb0b7('0x9')+random[_0xb0b7('0xa')](0x6)+_0xb0b7('0xb');}function getFirstName(_0x20fbb2){var _0x4a5ed5=_[_0xb0b7('0x7')](_0x20fbb2[_0xb0b7('0xc')]);if(_0x4a5ed5&&_0x4a5ed5['name']){if(_0x4a5ed5[_0xb0b7('0xd')]==_0x4a5ed5[_0xb0b7('0x8')]){return _0x4a5ed5['name'][_0xb0b7('0xe')](0x0,_0x4a5ed5[_0xb0b7('0xd')][_0xb0b7('0xf')]('@'));}var _0x59d60a=_0x4a5ed5['name'][_0xb0b7('0x10')](/\s+/);return _0x59d60a['length']>0x1?_0x59d60a[_0xb0b7('0x11')](0x0,-0x1)[_0xb0b7('0x12')]('\x20'):_0x4a5ed5[_0xb0b7('0xd')];}return _0xb0b7('0x13');}function getLastName(_0x445045){var _0x13e889=_[_0xb0b7('0x7')](_0x445045[_0xb0b7('0xc')]);if(_0x13e889&&_0x13e889[_0xb0b7('0xd')]){var _0x1086ff=_0x13e889['name']['split'](/\s+/);return _0x1086ff[_0xb0b7('0x14')]>0x1?_0x1086ff[_0xb0b7('0x15')]():'';}return'';}function getMails(_0x540c79,_0x56623b){var _0x205187='';for(var _0x381f48=0x0;_0x381f48<_0x56623b[_0xb0b7('0xc')]['length'];_0x381f48+=0x1){if(_0x56623b[_0xb0b7('0xc')][_0x381f48]['address']!==_0x540c79){if(!_[_0xb0b7('0x16')](_0x205187)){_0x205187+=',';}_0x205187+=_0x56623b['value'][_0x381f48][_0xb0b7('0xd')]||_0x56623b[_0xb0b7('0xc')][_0x381f48][_0xb0b7('0x8')]||'';_0x205187+='\x20<';_0x205187+=_0x56623b[_0xb0b7('0xc')][_0x381f48]['address']?_0x56623b[_0xb0b7('0xc')][_0x381f48][_0xb0b7('0x8')]:_0xb0b7('0x9')+random[_0xb0b7('0xa')](0x6)+_0xb0b7('0xb');_0x205187+='>';}}return _0x205187;}function parseEmail(_0x33e939,_0x29e692,_0x78274d){if(_0x29e692[_0xb0b7('0x17')]){var _0xdec7d0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0xdec7d0[_0xb0b7('0x18')](_0x29e692['html'])){_0x29e692[_0xb0b7('0x17')]=_0x29e692['html'][_0xb0b7('0x19')](_0xdec7d0,'');}if(_0x29e692['html'][_0xb0b7('0x1a')](_0xb0b7('0x1b'))){var _0x5c18ad=[];_0x29e692[_0xb0b7('0x1c')][_0xb0b7('0x1d')](_0x2a0732=>{_0x5c18ad[_0xb0b7('0x1e')](_0x2a0732[_0xb0b7('0x1f')]);});var _0x14b196=/<img.*? _SRC(.*?)[^>]+>/g;var _0x349c7f=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x3d46e8=_0x29e692['html'][_0xb0b7('0x19')](_0x349c7f,_0xb0b7('0x20'));var _0x2889bd=_0x3d46e8[_0xb0b7('0x19')](_0x14b196,'_IMG');for(let _0x5d655b=0x0;_0x5d655b<_0x5c18ad[_0xb0b7('0x14')];_0x5d655b++){var _0x2e78dc=_0x2889bd[_0xb0b7('0x19')](_0xb0b7('0x21'),_0xb0b7('0x22')+_0x5c18ad[_0x5d655b]+_0xb0b7('0x23'));_0x2889bd=_0x2e78dc;}_0x29e692[_0xb0b7('0x17')]=_0x2889bd;}_0x78274d[_0xb0b7('0x24')]=_0x29e692[_0xb0b7('0x17')];}else{_0x78274d[_0xb0b7('0x24')]=_0x29e692[_0xb0b7('0x25')];}if(_0x78274d[_0xb0b7('0x24')]){_0x78274d[_0xb0b7('0x24')]=_0x78274d[_0xb0b7('0x24')][_0xb0b7('0x19')](/<a\s+/gi,_0xb0b7('0x26'));}if(_0x29e692['to']){_0x78274d[_0xb0b7('0x27')][_0xb0b7('0x28')]=getMails(null,_0x29e692['to']);var _0x4d2376=getMails(_0x33e939[_0xb0b7('0x5')],_0x29e692['to']);if(!_[_0xb0b7('0x16')](_0x4d2376)){_0x78274d['message']['cc']+=_0x4d2376;}}if(_0x29e692['cc']){_0x78274d[_0xb0b7('0x27')][_0xb0b7('0x29')]=getMails(null,_0x29e692['cc']);var _0x580709=getMails(_0x33e939[_0xb0b7('0x5')],_0x29e692['cc']);if(!_['isEmpty'](_0x580709)){if(!_[_0xb0b7('0x16')](_0x78274d[_0xb0b7('0x27')]['cc'])){_0x78274d[_0xb0b7('0x27')]['cc']+=',';}_0x78274d[_0xb0b7('0x27')]['cc']+=_0x580709;}}if(!_[_0xb0b7('0x1a')](_0x78274d['message']['originTo'],_0x33e939['email'])&&!_[_0xb0b7('0x1a')](_0x78274d['message'][_0xb0b7('0x29')],_0x33e939['email'])){_0x78274d[_0xb0b7('0x27')]['bcc']=_0x33e939[_0xb0b7('0x5')];}if(_0x29e692[_0xb0b7('0x1c')]&&_0x29e692[_0xb0b7('0x1c')]['length']){_0x78274d[_0xb0b7('0x27')][_0xb0b7('0x2a')]=_0x29e692[_0xb0b7('0x1c')][_0xb0b7('0x14')];for(var _0x158689=0x0,_0x3b669f,_0x41c1f8,_0xd06d1e;_0x158689<_0x29e692[_0xb0b7('0x1c')][_0xb0b7('0x14')];_0x158689+=0x1){if(_0x29e692[_0xb0b7('0x1c')][_0x158689][_0xb0b7('0x2b')]===_0xb0b7('0x2c')){_0xd06d1e=_0x29e692[_0xb0b7('0x1c')][_0x158689][_0xb0b7('0x1f')]||_0xb0b7('0x2d')+_0x158689;_0x3b669f=util['format'](_0xb0b7('0x2e'),Date[_0xb0b7('0x2f')](),_0xd06d1e);_0x41c1f8=path[_0xb0b7('0x12')](config[_0xb0b7('0x30')],_0xb0b7('0x31'),_0x3b669f);fs[_0xb0b7('0x32')](_0x41c1f8,_0x29e692[_0xb0b7('0x1c')][_0x158689]['content']);_0x78274d['message'][_0xb0b7('0x1c')][_0xb0b7('0x1e')]({'name':_0xd06d1e,'basename':_0x3b669f,'type':_0x29e692[_0xb0b7('0x1c')][_0x158689][_0xb0b7('0x33')],'filepath':_0x41c1f8});}}}if(_0x29e692[_0xb0b7('0x34')]&&_0x29e692['headerLines'][_0xb0b7('0x14')]>0x0){var _0x19f269=[_0xb0b7('0x35'),_0xb0b7('0x36'),_0xb0b7('0x37')];for(var _0x4c5924=0x0;_0x4c5924<_0x29e692[_0xb0b7('0x34')][_0xb0b7('0x14')];_0x4c5924++){var _0x10a3e1=_[_0xb0b7('0xf')](_0x19f269,_0x29e692[_0xb0b7('0x34')][_0x4c5924]['line']);if(_0x10a3e1>=0x0){_0x78274d['isAutoreply']=!![];}}}return _0x78274d;}exports[_0xb0b7('0x38')]=function(_0x34138b,_0x2b5ea4,_0x22268d){var _0xdc3c60={'from':getAddress(_0x2b5ea4['from']),'firstName':getFirstName(_0x2b5ea4[_0xb0b7('0x39')]),'lastName':getLastName(_0x2b5ea4[_0xb0b7('0x39')]),'mapKey':_0xb0b7('0x5'),'message':{'from':getMails(_0x34138b[_0xb0b7('0x5')],_0x2b5ea4[_0xb0b7('0x39')]),'to':_0x34138b[_0xb0b7('0x5')],'cc':'','subject':_0x2b5ea4[_0xb0b7('0x3a')]||'','messageId':_0x2b5ea4['messageId'],'inReplyTo':_0x2b5ea4[_0xb0b7('0x3b')],'sentAt':moment(_0x2b5ea4['date'])[_0xb0b7('0x3c')](_0xb0b7('0x3d')),'attach':![],'attachments':[]}};if(!_0x2b5ea4[_0xb0b7('0x17')]&&!_0x2b5ea4['textAsHtml']){var _0x1cf6fe=_[_0xb0b7('0x3e')](_0x2b5ea4[_0xb0b7('0x1c')],{'contentType':_0xb0b7('0x3f')});if(_0x1cf6fe[_0xb0b7('0x14')]){logger[_0xb0b7('0x40')](util[_0xb0b7('0x3c')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x2b5ea4['messageId']));tnef[_0xb0b7('0x41')](_['first'](_0x1cf6fe)[_0xb0b7('0x42')],function(_0x39d7af,_0x4e481c){if(_0x4e481c){_0x2b5ea4['html']=_0x4e481c[_0xb0b7('0x43')]||_0xb0b7('0x44');if(_0x4e481c[_0xb0b7('0x45')]){for(var _0x18b381=0x0;_0x18b381<_0x4e481c[_0xb0b7('0x45')]['length'];_0x18b381++){var _0x182352=_0x4e481c[_0xb0b7('0x45')][_0x18b381];_0xdc3c60[_0xb0b7('0x27')][_0xb0b7('0x1c')]['push']({'filename':_0x182352['Title'],'content':Buffer['from'](_0x182352['Data'])});}}}_0x22268d(parseEmail(_0x34138b,_0x2b5ea4,_0xdc3c60));});}else{_0x2b5ea4[_0xb0b7('0x17')]='<p>Empty\x20message</p>';_0x22268d(parseEmail(_0x34138b,_0x2b5ea4,_0xdc3c60));}}else{_0x22268d(parseEmail(_0x34138b,_0x2b5ea4,_0xdc3c60));}};exports[_0xb0b7('0x46')]=function(_0x49023b,_0x24d2fb){var _0x1e4f82=['user='+(_0x24d2fb||''),'auth=Bearer\x20'+_0x49023b,'',''];return Buffer[_0xb0b7('0x39')](_0x1e4f82[_0xb0b7('0x12')]('\ 1'),_0xb0b7('0x47'))[_0xb0b7('0x48')]('base64');};