ffb9cf94de8887f47358ef154907320cd7eb5ad3
[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 _0x123f=['join','Anonymous','pop','isEmpty','anonymous','html','test','replace','includes','<img','attachments','forEach','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','message','originTo','originCc','bcc','attach','type','attachment','filename','attachment-','format','now','root','server/files/attachments/','writeFileSync','content','push','contentType','headerLines','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','parser','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','path','util','../../../config/logger','email','../../../config/environment','head','value','address','generate','@xcally.com','name','substring','indexOf','split','length','slice'];(function(_0x1602f8,_0x3a6d4e){var _0x3701c3=function(_0x36835e){while(--_0x36835e){_0x1602f8['push'](_0x1602f8['shift']());}};_0x3701c3(++_0x3a6d4e);}(_0x123f,0xda));var _0xf123=function(_0x138d06,_0x33edf2){_0x138d06=_0x138d06-0x0;var _0x1a01eb=_0x123f[_0x138d06];return _0x1a01eb;};'use strict';var _=require(_0xf123('0x0'));var moment=require(_0xf123('0x1'));var random=require(_0xf123('0x2'));var fs=require('fs');var path=require(_0xf123('0x3'));var util=require(_0xf123('0x4'));var tnef=require('node-tnef');var logger=require(_0xf123('0x5'))(_0xf123('0x6'));var config=require(_0xf123('0x7'));function getAddress(_0x7feacc){var _0x1fca49=_[_0xf123('0x8')](_0x7feacc[_0xf123('0x9')]);return _0x1fca49&&_0x1fca49[_0xf123('0xa')]?_0x1fca49[_0xf123('0xa')]:'anonymous'+random[_0xf123('0xb')](0x6)+_0xf123('0xc');}function getFirstName(_0x54614d){var _0x5b08c3=_[_0xf123('0x8')](_0x54614d[_0xf123('0x9')]);if(_0x5b08c3&&_0x5b08c3['name']){if(_0x5b08c3[_0xf123('0xd')]==_0x5b08c3[_0xf123('0xa')]){return _0x5b08c3[_0xf123('0xd')][_0xf123('0xe')](0x0,_0x5b08c3[_0xf123('0xd')][_0xf123('0xf')]('@'));}var _0x58079b=_0x5b08c3[_0xf123('0xd')][_0xf123('0x10')](/\s+/);return _0x58079b[_0xf123('0x11')]>0x1?_0x58079b[_0xf123('0x12')](0x0,-0x1)[_0xf123('0x13')]('\x20'):_0x5b08c3['name'];}return _0xf123('0x14');}function getLastName(_0x139aea){var _0x4adf1f=_[_0xf123('0x8')](_0x139aea['value']);if(_0x4adf1f&&_0x4adf1f[_0xf123('0xd')]){var _0x30c501=_0x4adf1f[_0xf123('0xd')][_0xf123('0x10')](/\s+/);return _0x30c501[_0xf123('0x11')]>0x1?_0x30c501[_0xf123('0x15')]():'';}return'';}function getMails(_0x3aa143,_0xfe6c5d){var _0xfa9dcb='';for(var _0x23039f=0x0;_0x23039f<_0xfe6c5d[_0xf123('0x9')][_0xf123('0x11')];_0x23039f+=0x1){if(_0xfe6c5d[_0xf123('0x9')][_0x23039f][_0xf123('0xa')]!==_0x3aa143){if(!_[_0xf123('0x16')](_0xfa9dcb)){_0xfa9dcb+=',';}_0xfa9dcb+=_0xfe6c5d[_0xf123('0x9')][_0x23039f][_0xf123('0xd')]||_0xfe6c5d[_0xf123('0x9')][_0x23039f]['address']||'';_0xfa9dcb+='\x20<';_0xfa9dcb+=_0xfe6c5d[_0xf123('0x9')][_0x23039f][_0xf123('0xa')]?_0xfe6c5d[_0xf123('0x9')][_0x23039f][_0xf123('0xa')]:_0xf123('0x17')+random['generate'](0x6)+_0xf123('0xc');_0xfa9dcb+='>';}}return _0xfa9dcb;}function parseEmail(_0x436696,_0xcf0c2a,_0x5734f2){if(_0xcf0c2a[_0xf123('0x18')]){var _0x35af0a=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x35af0a[_0xf123('0x19')](_0xcf0c2a[_0xf123('0x18')])){_0xcf0c2a['html']=_0xcf0c2a[_0xf123('0x18')][_0xf123('0x1a')](_0x35af0a,'');}if(_0xcf0c2a['html'][_0xf123('0x1b')](_0xf123('0x1c'))){var _0x36c0fc=[];_0xcf0c2a[_0xf123('0x1d')][_0xf123('0x1e')](_0x425c1b=>{_0x36c0fc['push'](_0x425c1b['filename']);});var _0x1aa4f2=/<img.*? _SRC(.*?)[^>]+>/g;var _0x4ae2f0=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xe3beff=_0xcf0c2a[_0xf123('0x18')][_0xf123('0x1a')](_0x4ae2f0,_0xf123('0x1f'));var _0x62b60e=_0xe3beff[_0xf123('0x1a')](_0x1aa4f2,_0xf123('0x20'));for(let _0x2e57dd=0x0;_0x2e57dd<_0x36c0fc['length'];_0x2e57dd++){var _0x38b5b5=_0x62b60e[_0xf123('0x1a')](_0xf123('0x20'),_0xf123('0x21')+_0x36c0fc[_0x2e57dd]+_0xf123('0x22'));_0x62b60e=_0x38b5b5;}_0xcf0c2a[_0xf123('0x18')]=_0x62b60e;}_0x5734f2[_0xf123('0x23')]=_0xcf0c2a[_0xf123('0x18')];}else{_0x5734f2['body']=_0xcf0c2a[_0xf123('0x24')];}if(_0x5734f2[_0xf123('0x23')]){_0x5734f2[_0xf123('0x23')]=_0x5734f2[_0xf123('0x23')][_0xf123('0x1a')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0xcf0c2a['to']){_0x5734f2[_0xf123('0x25')][_0xf123('0x26')]=getMails(null,_0xcf0c2a['to']);var _0x1de5bc=getMails(_0x436696[_0xf123('0x6')],_0xcf0c2a['to']);if(!_[_0xf123('0x16')](_0x1de5bc)){_0x5734f2[_0xf123('0x25')]['cc']+=_0x1de5bc;}}if(_0xcf0c2a['cc']){_0x5734f2[_0xf123('0x25')][_0xf123('0x27')]=getMails(null,_0xcf0c2a['cc']);var _0x5d44e5=getMails(_0x436696['email'],_0xcf0c2a['cc']);if(!_['isEmpty'](_0x5d44e5)){if(!_['isEmpty'](_0x5734f2[_0xf123('0x25')]['cc'])){_0x5734f2[_0xf123('0x25')]['cc']+=',';}_0x5734f2[_0xf123('0x25')]['cc']+=_0x5d44e5;}}if(!_[_0xf123('0x1b')](_0x5734f2['message'][_0xf123('0x26')],_0x436696[_0xf123('0x6')])&&!_[_0xf123('0x1b')](_0x5734f2['message'][_0xf123('0x27')],_0x436696['email'])){_0x5734f2['message'][_0xf123('0x28')]=_0x436696['email'];}if(_0xcf0c2a[_0xf123('0x1d')]&&_0xcf0c2a['attachments'][_0xf123('0x11')]){_0x5734f2['message'][_0xf123('0x29')]=_0xcf0c2a[_0xf123('0x1d')][_0xf123('0x11')];for(var _0x177489=0x0,_0x57ebba,_0x2c6c7a,_0x511f42;_0x177489<_0xcf0c2a['attachments'][_0xf123('0x11')];_0x177489+=0x1){if(_0xcf0c2a[_0xf123('0x1d')][_0x177489][_0xf123('0x2a')]===_0xf123('0x2b')){_0x511f42=_0xcf0c2a[_0xf123('0x1d')][_0x177489][_0xf123('0x2c')]||_0xf123('0x2d')+_0x177489;_0x57ebba=util[_0xf123('0x2e')]('%s-%s',Date[_0xf123('0x2f')](),_0x511f42);_0x2c6c7a=path[_0xf123('0x13')](config[_0xf123('0x30')],_0xf123('0x31'),_0x57ebba);fs[_0xf123('0x32')](_0x2c6c7a,_0xcf0c2a[_0xf123('0x1d')][_0x177489][_0xf123('0x33')]);_0x5734f2[_0xf123('0x25')][_0xf123('0x1d')][_0xf123('0x34')]({'name':_0x511f42,'basename':_0x57ebba,'type':_0xcf0c2a['attachments'][_0x177489][_0xf123('0x35')],'filepath':_0x2c6c7a});}}}if(_0xcf0c2a[_0xf123('0x36')]&&_0xcf0c2a[_0xf123('0x36')][_0xf123('0x11')]>0x0){var _0x260806=['Auto-Submitted:\x20auto-replied',_0xf123('0x37'),_0xf123('0x38')];for(var _0x818d4=0x0;_0x818d4<_0xcf0c2a['headerLines']['length'];_0x818d4++){var _0xbc469f=_[_0xf123('0xf')](_0x260806,_0xcf0c2a['headerLines'][_0x818d4]['line']);if(_0xbc469f>=0x0){_0x5734f2['isAutoreply']=!![];}}}return _0x5734f2;}exports[_0xf123('0x39')]=function(_0x34cb9d,_0x52aff6,_0x4acc16){var _0x201661={'from':getAddress(_0x52aff6[_0xf123('0x3a')]),'firstName':getFirstName(_0x52aff6[_0xf123('0x3a')]),'lastName':getLastName(_0x52aff6[_0xf123('0x3a')]),'mapKey':_0xf123('0x6'),'message':{'from':getMails(_0x34cb9d['email'],_0x52aff6[_0xf123('0x3a')]),'to':_0x34cb9d[_0xf123('0x6')],'cc':'','subject':_0x52aff6[_0xf123('0x3b')]||'','messageId':_0x52aff6[_0xf123('0x3c')],'inReplyTo':_0x52aff6[_0xf123('0x3d')],'sentAt':moment(_0x52aff6[_0xf123('0x3e')])[_0xf123('0x2e')](_0xf123('0x3f')),'attach':![],'attachments':[]}};if(!_0x52aff6[_0xf123('0x18')]&&!_0x52aff6[_0xf123('0x24')]){var _0x20cb93=_[_0xf123('0x40')](_0x52aff6['attachments'],{'contentType':_0xf123('0x41')});if(_0x20cb93[_0xf123('0x11')]){logger[_0xf123('0x42')](util[_0xf123('0x2e')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x52aff6[_0xf123('0x3c')]));tnef[_0xf123('0x43')](_[_0xf123('0x44')](_0x20cb93)[_0xf123('0x33')],function(_0x2e72c8,_0x1d476b){if(_0x1d476b){_0x52aff6[_0xf123('0x18')]=_0x1d476b['BodyHTML']||_0xf123('0x45');if(_0x1d476b[_0xf123('0x46')]){for(var _0x325a69=0x0;_0x325a69<_0x1d476b[_0xf123('0x46')]['length'];_0x325a69++){var _0x41a33c=_0x1d476b[_0xf123('0x46')][_0x325a69];_0x201661['message'][_0xf123('0x1d')][_0xf123('0x34')]({'filename':_0x41a33c[_0xf123('0x47')],'content':Buffer[_0xf123('0x3a')](_0x41a33c[_0xf123('0x48')])});}}}_0x4acc16(parseEmail(_0x34cb9d,_0x52aff6,_0x201661));});}else{_0x52aff6['html']='<p>Empty\x20message</p>';_0x4acc16(parseEmail(_0x34cb9d,_0x52aff6,_0x201661));}}else{_0x4acc16(parseEmail(_0x34cb9d,_0x52aff6,_0x201661));}};exports[_0xf123('0x49')]=function(_0x11f1be,_0x2ccafb){var _0x4016f0=[_0xf123('0x4a')+(_0x2ccafb||''),_0xf123('0x4b')+_0x11f1be,'',''];return Buffer[_0xf123('0x3a')](_0x4016f0['join']('\ 1'),_0xf123('0x4c'))[_0xf123('0x4d')](_0xf123('0x4e'));};