9ea26f01aa34ab06812cd6d9eff2bf660f28c4a1
[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 _0xc72a=['isEmpty','@xcally.com','html','test','includes','<img','attachments','forEach','push','filename','replace','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','bcc','attach','type','attachment','format','%s-%s','now','root','server/files/attachments/','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','isAutoreply','parser','from','subject','messageId','inReplyTo','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','BodyHTML','<p>Empty\x20message</p>','Title','Data','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','../../../config/environment','head','value','address','anonymous','generate','name','substring','length','slice','join','Anonymous'];(function(_0x32b9c9,_0x5881e6){var _0x1a837f=function(_0x2edd85){while(--_0x2edd85){_0x32b9c9['push'](_0x32b9c9['shift']());}};_0x1a837f(++_0x5881e6);}(_0xc72a,0xce));var _0xac72=function(_0xa3fadc,_0xd1e16){_0xa3fadc=_0xa3fadc-0x0;var _0x23ecb8=_0xc72a[_0xa3fadc];return _0x23ecb8;};'use strict';var _=require(_0xac72('0x0'));var moment=require(_0xac72('0x1'));var random=require(_0xac72('0x2'));var fs=require('fs');var path=require(_0xac72('0x3'));var util=require(_0xac72('0x4'));var tnef=require(_0xac72('0x5'));var logger=require(_0xac72('0x6'))('email');var config=require(_0xac72('0x7'));function getAddress(_0x51979a){var _0x12ced4=_[_0xac72('0x8')](_0x51979a[_0xac72('0x9')]);return _0x12ced4&&_0x12ced4[_0xac72('0xa')]?_0x12ced4['address']:_0xac72('0xb')+random[_0xac72('0xc')](0x6)+'@xcally.com';}function getFirstName(_0x423860){var _0x5bf14c=_['head'](_0x423860[_0xac72('0x9')]);if(_0x5bf14c&&_0x5bf14c[_0xac72('0xd')]){if(_0x5bf14c['name']==_0x5bf14c[_0xac72('0xa')]){return _0x5bf14c[_0xac72('0xd')][_0xac72('0xe')](0x0,_0x5bf14c[_0xac72('0xd')]['indexOf']('@'));}var _0x61acf1=_0x5bf14c[_0xac72('0xd')]['split'](/\s+/);return _0x61acf1[_0xac72('0xf')]>0x1?_0x61acf1[_0xac72('0x10')](0x0,-0x1)[_0xac72('0x11')]('\x20'):_0x5bf14c['name'];}return _0xac72('0x12');}function getLastName(_0x22a577){var _0x5b0849=_[_0xac72('0x8')](_0x22a577['value']);if(_0x5b0849&&_0x5b0849[_0xac72('0xd')]){var _0x4ca6d0=_0x5b0849[_0xac72('0xd')]['split'](/\s+/);return _0x4ca6d0[_0xac72('0xf')]>0x1?_0x4ca6d0['pop']():'';}return'';}function getMails(_0x1b394e,_0x7b9470){var _0x5d0839='';for(var _0x3e6063=0x0;_0x3e6063<_0x7b9470['value']['length'];_0x3e6063+=0x1){if(_0x7b9470[_0xac72('0x9')][_0x3e6063][_0xac72('0xa')]!==_0x1b394e){if(!_[_0xac72('0x13')](_0x5d0839)){_0x5d0839+=',';}_0x5d0839+=_0x7b9470[_0xac72('0x9')][_0x3e6063][_0xac72('0xd')]||_0x7b9470[_0xac72('0x9')][_0x3e6063][_0xac72('0xa')]||'';_0x5d0839+='\x20<';_0x5d0839+=_0x7b9470[_0xac72('0x9')][_0x3e6063][_0xac72('0xa')]?_0x7b9470[_0xac72('0x9')][_0x3e6063][_0xac72('0xa')]:'anonymous'+random[_0xac72('0xc')](0x6)+_0xac72('0x14');_0x5d0839+='>';}}return _0x5d0839;}function parseEmail(_0x47a8d6,_0x1c78fb,_0x5dd5fa){if(_0x1c78fb[_0xac72('0x15')]){var _0x51fd0e=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x51fd0e[_0xac72('0x16')](_0x1c78fb['html'])){_0x1c78fb[_0xac72('0x15')]=_0x1c78fb['html']['replace'](_0x51fd0e,'');}if(_0x1c78fb['html'][_0xac72('0x17')](_0xac72('0x18'))){var _0x33bc82=[];_0x1c78fb[_0xac72('0x19')][_0xac72('0x1a')](_0x4845b2=>{_0x33bc82[_0xac72('0x1b')](_0x4845b2[_0xac72('0x1c')]);});var _0x591e49=/<img.*? _SRC(.*?)[^>]+>/g;var _0xe7d312=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x505480=_0x1c78fb[_0xac72('0x15')]['replace'](_0xe7d312,'_SRC');var _0x32f4fd=_0x505480[_0xac72('0x1d')](_0x591e49,_0xac72('0x1e'));for(let _0x33a2a7=0x0;_0x33a2a7<_0x33bc82['length'];_0x33a2a7++){var _0x5c74e7=_0x32f4fd['replace'](_0xac72('0x1e'),_0xac72('0x1f')+_0x33bc82[_0x33a2a7]+_0xac72('0x20'));_0x32f4fd=_0x5c74e7;}_0x1c78fb['html']=_0x32f4fd;}_0x5dd5fa[_0xac72('0x21')]=_0x1c78fb[_0xac72('0x15')];}else{_0x5dd5fa[_0xac72('0x21')]=_0x1c78fb[_0xac72('0x22')];}if(_0x5dd5fa[_0xac72('0x21')]){_0x5dd5fa['body']=_0x5dd5fa[_0xac72('0x21')][_0xac72('0x1d')](/<a\s+/gi,_0xac72('0x23'));}if(_0x1c78fb['to']){_0x5dd5fa[_0xac72('0x24')][_0xac72('0x25')]=getMails(null,_0x1c78fb['to']);var _0x8d1968=getMails(_0x47a8d6[_0xac72('0x26')],_0x1c78fb['to']);if(!_['isEmpty'](_0x8d1968)){_0x5dd5fa[_0xac72('0x24')]['cc']+=_0x8d1968;}}if(_0x1c78fb['cc']){_0x5dd5fa[_0xac72('0x24')][_0xac72('0x27')]=getMails(null,_0x1c78fb['cc']);var _0x1e64c5=getMails(_0x47a8d6['email'],_0x1c78fb['cc']);if(!_['isEmpty'](_0x1e64c5)){if(!_[_0xac72('0x13')](_0x5dd5fa[_0xac72('0x24')]['cc'])){_0x5dd5fa[_0xac72('0x24')]['cc']+=',';}_0x5dd5fa['message']['cc']+=_0x1e64c5;}}if(!_[_0xac72('0x17')](_0x5dd5fa['message'][_0xac72('0x25')],_0x47a8d6[_0xac72('0x26')])&&!_[_0xac72('0x17')](_0x5dd5fa['message'][_0xac72('0x27')],_0x47a8d6['email'])){_0x5dd5fa[_0xac72('0x24')][_0xac72('0x28')]=_0x47a8d6[_0xac72('0x26')];}if(_0x1c78fb['attachments']&&_0x1c78fb[_0xac72('0x19')]['length']){_0x5dd5fa['message'][_0xac72('0x29')]=_0x1c78fb['attachments'][_0xac72('0xf')];for(var _0xae2794=0x0,_0x4ef634,_0x131e1c,_0x4950de;_0xae2794<_0x1c78fb[_0xac72('0x19')]['length'];_0xae2794+=0x1){if(_0x1c78fb[_0xac72('0x19')][_0xae2794][_0xac72('0x2a')]===_0xac72('0x2b')){_0x4950de=_0x1c78fb[_0xac72('0x19')][_0xae2794][_0xac72('0x1c')]||'attachment-'+_0xae2794;_0x4ef634=util[_0xac72('0x2c')](_0xac72('0x2d'),Date[_0xac72('0x2e')](),_0x4950de);_0x131e1c=path['join'](config[_0xac72('0x2f')],_0xac72('0x30'),_0x4ef634);fs[_0xac72('0x31')](_0x131e1c,_0x1c78fb[_0xac72('0x19')][_0xae2794]['content']);_0x5dd5fa[_0xac72('0x24')][_0xac72('0x19')]['push']({'name':_0x4950de,'basename':_0x4ef634,'type':_0x1c78fb[_0xac72('0x19')][_0xae2794][_0xac72('0x32')],'filepath':_0x131e1c});}}}if(_0x1c78fb['headerLines']&&_0x1c78fb[_0xac72('0x33')][_0xac72('0xf')]>0x0){var _0x2b1f81=[_0xac72('0x34'),_0xac72('0x35'),_0xac72('0x36')];for(var _0x52dbdf=0x0;_0x52dbdf<_0x1c78fb[_0xac72('0x33')][_0xac72('0xf')];_0x52dbdf++){var _0x5dc841=_['indexOf'](_0x2b1f81,_0x1c78fb[_0xac72('0x33')][_0x52dbdf]['line']);if(_0x5dc841>=0x0){_0x5dd5fa[_0xac72('0x37')]=!![];}}}return _0x5dd5fa;}exports[_0xac72('0x38')]=function(_0x12d251,_0xb24ac8,_0x2923fd){var _0x37371e={'from':getAddress(_0xb24ac8[_0xac72('0x39')]),'firstName':getFirstName(_0xb24ac8[_0xac72('0x39')]),'lastName':getLastName(_0xb24ac8[_0xac72('0x39')]),'mapKey':_0xac72('0x26'),'message':{'from':getMails(_0x12d251[_0xac72('0x26')],_0xb24ac8['from']),'to':_0x12d251[_0xac72('0x26')],'cc':'','subject':_0xb24ac8[_0xac72('0x3a')]||'','messageId':_0xb24ac8[_0xac72('0x3b')],'inReplyTo':_0xb24ac8[_0xac72('0x3c')],'sentAt':moment(_0xb24ac8['date'])[_0xac72('0x2c')](_0xac72('0x3d')),'attach':![],'attachments':[]}};if(!_0xb24ac8[_0xac72('0x15')]&&!_0xb24ac8[_0xac72('0x22')]){var _0x1dfaa2=_['filter'](_0xb24ac8[_0xac72('0x19')],{'contentType':_0xac72('0x3e')});if(_0x1dfaa2[_0xac72('0xf')]){logger[_0xac72('0x3f')](util[_0xac72('0x2c')](_0xac72('0x40'),_0xb24ac8[_0xac72('0x3b')]));tnef[_0xac72('0x41')](_['first'](_0x1dfaa2)['content'],function(_0x1e8b28,_0x21dbed){if(_0x21dbed){_0xb24ac8[_0xac72('0x15')]=_0x21dbed[_0xac72('0x42')]||_0xac72('0x43');if(_0x21dbed['Attachments']){for(var _0x1155f3=0x0;_0x1155f3<_0x21dbed['Attachments']['length'];_0x1155f3++){var _0x2d0950=_0x21dbed['Attachments'][_0x1155f3];_0x37371e[_0xac72('0x24')][_0xac72('0x19')][_0xac72('0x1b')]({'filename':_0x2d0950[_0xac72('0x44')],'content':Buffer[_0xac72('0x39')](_0x2d0950[_0xac72('0x45')])});}}}_0x2923fd(parseEmail(_0x12d251,_0xb24ac8,_0x37371e));});}else{_0xb24ac8[_0xac72('0x15')]=_0xac72('0x43');_0x2923fd(parseEmail(_0x12d251,_0xb24ac8,_0x37371e));}}else{_0x2923fd(parseEmail(_0x12d251,_0xb24ac8,_0x37371e));}};exports['generateXOAuth2Token']=function(_0x36e360,_0x5e89e0){var _0x1ab949=[_0xac72('0x46')+(_0x5e89e0||''),_0xac72('0x47')+_0x36e360,'',''];return Buffer[_0xac72('0x39')](_0x1ab949[_0xac72('0x11')]('\ 1'),_0xac72('0x48'))[_0xac72('0x49')](_0xac72('0x4a'));};