Built motion from commit 06a208af.|2.6.26
[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 _0x5011=['%s-%s','now','root','server/files/attachments/','content','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','indexOf','line','parser','from','subject','messageId','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','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','moment','randomstring','path','util','../../../config/logger','email','head','value','address','anonymous','generate','@xcally.com','name','substring','split','slice','join','Anonymous','length','isEmpty','html','replace','includes','<img','attachments','forEach','push','filename','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','attach','attachment','attachment-','format'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0x5011,0x64));var _0x1501=function(_0x5f2afa,_0x3d2cd2){_0x5f2afa=_0x5f2afa-0x0;var _0xc21b56=_0x5011[_0x5f2afa];return _0xc21b56;};'use strict';var _=require('lodash');var moment=require(_0x1501('0x0'));var random=require(_0x1501('0x1'));var fs=require('fs');var path=require(_0x1501('0x2'));var util=require(_0x1501('0x3'));var tnef=require('node-tnef');var logger=require(_0x1501('0x4'))(_0x1501('0x5'));var config=require('../../../config/environment');function getAddress(_0x5abaea){var _0x39e023=_[_0x1501('0x6')](_0x5abaea[_0x1501('0x7')]);return _0x39e023&&_0x39e023[_0x1501('0x8')]?_0x39e023[_0x1501('0x8')]:_0x1501('0x9')+random[_0x1501('0xa')](0x6)+_0x1501('0xb');}function getFirstName(_0x3f5cb3){var _0x4226a8=_[_0x1501('0x6')](_0x3f5cb3[_0x1501('0x7')]);if(_0x4226a8&&_0x4226a8[_0x1501('0xc')]){if(_0x4226a8['name']==_0x4226a8[_0x1501('0x8')]){return _0x4226a8['name'][_0x1501('0xd')](0x0,_0x4226a8[_0x1501('0xc')]['indexOf']('@'));}var _0x10f832=_0x4226a8['name'][_0x1501('0xe')](/\s+/);return _0x10f832['length']>0x1?_0x10f832[_0x1501('0xf')](0x0,-0x1)[_0x1501('0x10')]('\x20'):_0x4226a8[_0x1501('0xc')];}return _0x1501('0x11');}function getLastName(_0x55eb9b){var _0x2b458d=_['head'](_0x55eb9b['value']);if(_0x2b458d&&_0x2b458d[_0x1501('0xc')]){var _0x517adc=_0x2b458d[_0x1501('0xc')][_0x1501('0xe')](/\s+/);return _0x517adc[_0x1501('0x12')]>0x1?_0x517adc['pop']():'';}return'';}function getMails(_0x582869,_0x1df6b6){var _0x5e3f6e='';for(var _0x37ef84=0x0;_0x37ef84<_0x1df6b6['value'][_0x1501('0x12')];_0x37ef84+=0x1){if(_0x1df6b6[_0x1501('0x7')][_0x37ef84][_0x1501('0x8')]!==_0x582869){if(!_[_0x1501('0x13')](_0x5e3f6e)){_0x5e3f6e+=',';}_0x5e3f6e+=_0x1df6b6['value'][_0x37ef84][_0x1501('0xc')]||_0x1df6b6['value'][_0x37ef84]['address']||'';_0x5e3f6e+='\x20<';_0x5e3f6e+=_0x1df6b6['value'][_0x37ef84][_0x1501('0x8')]?_0x1df6b6[_0x1501('0x7')][_0x37ef84][_0x1501('0x8')]:_0x1501('0x9')+random[_0x1501('0xa')](0x6)+_0x1501('0xb');_0x5e3f6e+='>';}}return _0x5e3f6e;}function parseEmail(_0x65d2b,_0x3d99ff,_0x29169d){if(_0x3d99ff[_0x1501('0x14')]){var _0xc464e2=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0xc464e2['test'](_0x3d99ff[_0x1501('0x14')])){_0x3d99ff[_0x1501('0x14')]=_0x3d99ff[_0x1501('0x14')][_0x1501('0x15')](_0xc464e2,'');}if(_0x3d99ff[_0x1501('0x14')][_0x1501('0x16')](_0x1501('0x17'))){var _0x4c7b94=[];_0x3d99ff[_0x1501('0x18')][_0x1501('0x19')](_0x494009=>{_0x4c7b94[_0x1501('0x1a')](_0x494009[_0x1501('0x1b')]);});var _0xae39c2=/<img.*? _SRC(.*?)[^>]+>/g;var _0x221bcd=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x41e17a=_0x3d99ff['html'][_0x1501('0x15')](_0x221bcd,'_SRC');var _0x326bf2=_0x41e17a[_0x1501('0x15')](_0xae39c2,_0x1501('0x1c'));for(let _0x2b1b95=0x0;_0x2b1b95<_0x4c7b94['length'];_0x2b1b95++){var _0x2ba1e2=_0x326bf2[_0x1501('0x15')](_0x1501('0x1c'),_0x1501('0x1d')+_0x4c7b94[_0x2b1b95]+'\x20]</span>');_0x326bf2=_0x2ba1e2;}_0x3d99ff[_0x1501('0x14')]=_0x326bf2;}_0x29169d[_0x1501('0x1e')]=_0x3d99ff['html'];}else{_0x29169d[_0x1501('0x1e')]=_0x3d99ff[_0x1501('0x1f')];}if(_0x29169d[_0x1501('0x1e')]){_0x29169d[_0x1501('0x1e')]=_0x29169d[_0x1501('0x1e')][_0x1501('0x15')](/<a\s+/gi,_0x1501('0x20'));}if(_0x3d99ff['to']){_0x29169d[_0x1501('0x21')][_0x1501('0x22')]=getMails(null,_0x3d99ff['to']);var _0x4a3609=getMails(_0x65d2b[_0x1501('0x5')],_0x3d99ff['to']);if(!_[_0x1501('0x13')](_0x4a3609)){_0x29169d['message']['cc']+=_0x4a3609;}}if(_0x3d99ff['cc']){_0x29169d[_0x1501('0x21')][_0x1501('0x23')]=getMails(null,_0x3d99ff['cc']);var _0x5eb517=getMails(_0x65d2b['email'],_0x3d99ff['cc']);if(!_[_0x1501('0x13')](_0x5eb517)){if(!_[_0x1501('0x13')](_0x29169d[_0x1501('0x21')]['cc'])){_0x29169d['message']['cc']+=',';}_0x29169d[_0x1501('0x21')]['cc']+=_0x5eb517;}}if(!_[_0x1501('0x16')](_0x29169d[_0x1501('0x21')]['originTo'],_0x65d2b[_0x1501('0x5')])&&!_[_0x1501('0x16')](_0x29169d[_0x1501('0x21')][_0x1501('0x23')],_0x65d2b[_0x1501('0x5')])){_0x29169d[_0x1501('0x21')]['bcc']=_0x65d2b[_0x1501('0x5')];}if(_0x3d99ff['attachments']&&_0x3d99ff['attachments'][_0x1501('0x12')]){_0x29169d[_0x1501('0x21')][_0x1501('0x24')]=_0x3d99ff[_0x1501('0x18')][_0x1501('0x12')];for(var _0x208f88=0x0,_0x2a8003,_0xb27ea,_0x1309d6;_0x208f88<_0x3d99ff[_0x1501('0x18')][_0x1501('0x12')];_0x208f88+=0x1){if(_0x3d99ff[_0x1501('0x18')][_0x208f88]['type']===_0x1501('0x25')){_0x1309d6=_0x3d99ff[_0x1501('0x18')][_0x208f88][_0x1501('0x1b')]||_0x1501('0x26')+_0x208f88;_0x2a8003=util[_0x1501('0x27')](_0x1501('0x28'),Date[_0x1501('0x29')](),_0x1309d6);_0xb27ea=path[_0x1501('0x10')](config[_0x1501('0x2a')],_0x1501('0x2b'),_0x2a8003);fs['writeFileSync'](_0xb27ea,_0x3d99ff[_0x1501('0x18')][_0x208f88][_0x1501('0x2c')]);_0x29169d[_0x1501('0x21')]['attachments'][_0x1501('0x1a')]({'name':_0x1309d6,'basename':_0x2a8003,'type':_0x3d99ff[_0x1501('0x18')][_0x208f88]['contentType'],'filepath':_0xb27ea});}}}if(_0x3d99ff[_0x1501('0x2d')]&&_0x3d99ff[_0x1501('0x2d')][_0x1501('0x12')]>0x0){var _0x34e154=[_0x1501('0x2e'),_0x1501('0x2f'),'Precedence:\x20auto_reply'];for(var _0x13b5c6=0x0;_0x13b5c6<_0x3d99ff['headerLines'][_0x1501('0x12')];_0x13b5c6++){var _0x1aaaa=_[_0x1501('0x30')](_0x34e154,_0x3d99ff[_0x1501('0x2d')][_0x13b5c6][_0x1501('0x31')]);if(_0x1aaaa>=0x0){_0x29169d['isAutoreply']=!![];}}}return _0x29169d;}exports[_0x1501('0x32')]=function(_0x406ab4,_0x4b6c32,_0x3d1588){var _0x18fc09={'from':getAddress(_0x4b6c32[_0x1501('0x33')]),'firstName':getFirstName(_0x4b6c32[_0x1501('0x33')]),'lastName':getLastName(_0x4b6c32['from']),'mapKey':_0x1501('0x5'),'message':{'from':getMails(_0x406ab4[_0x1501('0x5')],_0x4b6c32[_0x1501('0x33')]),'to':_0x406ab4[_0x1501('0x5')],'cc':'','subject':_0x4b6c32[_0x1501('0x34')]||'','messageId':_0x4b6c32[_0x1501('0x35')],'inReplyTo':_0x4b6c32['inReplyTo'],'sentAt':moment(_0x4b6c32['date'])[_0x1501('0x27')](_0x1501('0x36')),'attach':![],'attachments':[]}};if(!_0x4b6c32[_0x1501('0x14')]&&!_0x4b6c32['textAsHtml']){var _0x13ad26=_[_0x1501('0x37')](_0x4b6c32[_0x1501('0x18')],{'contentType':'application/ms-tnef'});if(_0x13ad26[_0x1501('0x12')]){logger['info'](util[_0x1501('0x27')](_0x1501('0x38'),_0x4b6c32['messageId']));tnef[_0x1501('0x39')](_[_0x1501('0x3a')](_0x13ad26)[_0x1501('0x2c')],function(_0x2601e3,_0x315083){if(_0x315083){_0x4b6c32[_0x1501('0x14')]=_0x315083[_0x1501('0x3b')]||_0x1501('0x3c');if(_0x315083[_0x1501('0x3d')]){for(var _0x2341ad=0x0;_0x2341ad<_0x315083[_0x1501('0x3d')][_0x1501('0x12')];_0x2341ad++){var _0x3843dc=_0x315083[_0x1501('0x3d')][_0x2341ad];_0x18fc09[_0x1501('0x21')][_0x1501('0x18')][_0x1501('0x1a')]({'filename':_0x3843dc[_0x1501('0x3e')],'content':Buffer[_0x1501('0x33')](_0x3843dc[_0x1501('0x3f')])});}}}_0x3d1588(parseEmail(_0x406ab4,_0x4b6c32,_0x18fc09));});}else{_0x4b6c32['html']='<p>Empty\x20message</p>';_0x3d1588(parseEmail(_0x406ab4,_0x4b6c32,_0x18fc09));}}else{_0x3d1588(parseEmail(_0x406ab4,_0x4b6c32,_0x18fc09));}};exports[_0x1501('0x40')]=function(_0x21a219,_0x5d798f){var _0x26611d=[_0x1501('0x41')+(_0x5d798f||''),_0x1501('0x42')+_0x21a219,'',''];return Buffer[_0x1501('0x33')](_0x26611d['join']('\ 1'),_0x1501('0x43'))[_0x1501('0x44')](_0x1501('0x45'));};