Built motion from commit 4fa9d4a7.|2.6.31
[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 _0xcccf=['\x20]</span>','body','<a\x20target=\x22_blank\x22\x20','originTo','email','message','originCc','attach','attachment','attachment-','format','now','join','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','Precedence:\x20auto_reply','line','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','textAsHtml','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','content','<p>Empty\x20message</p>','Attachments','push','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','util','node-tnef','../../../config/logger','../../../config/environment','value','address','generate','@xcally.com','head','name','indexOf','length','slice','Anonymous','split','pop','isEmpty','html','test','replace','includes','<img','attachments','forEach','filename','_SRC','<span\x20style=font-weight:bold>\x20[Attachment:\x20'];(function(_0x255e93,_0x4b8d68){var _0x37e6e0=function(_0x399372){while(--_0x399372){_0x255e93['push'](_0x255e93['shift']());}};_0x37e6e0(++_0x4b8d68);}(_0xcccf,0x6e));var _0xfccc=function(_0x114819,_0x393bb1){_0x114819=_0x114819-0x0;var _0x5a08a0=_0xcccf[_0x114819];return _0x5a08a0;};'use strict';var _=require(_0xfccc('0x0'));var moment=require(_0xfccc('0x1'));var random=require(_0xfccc('0x2'));var fs=require('fs');var path=require('path');var util=require(_0xfccc('0x3'));var tnef=require(_0xfccc('0x4'));var logger=require(_0xfccc('0x5'))('email');var config=require(_0xfccc('0x6'));function getAddress(_0x5314d1){var _0x54f9ff=_['head'](_0x5314d1[_0xfccc('0x7')]);return _0x54f9ff&&_0x54f9ff[_0xfccc('0x8')]?_0x54f9ff[_0xfccc('0x8')]:'anonymous'+random[_0xfccc('0x9')](0x6)+_0xfccc('0xa');}function getFirstName(_0x372c67){var _0x4c90b9=_[_0xfccc('0xb')](_0x372c67[_0xfccc('0x7')]);if(_0x4c90b9&&_0x4c90b9[_0xfccc('0xc')]){if(_0x4c90b9['name']==_0x4c90b9['address']){return _0x4c90b9['name']['substring'](0x0,_0x4c90b9[_0xfccc('0xc')][_0xfccc('0xd')]('@'));}var _0x3625=_0x4c90b9['name']['split'](/\s+/);return _0x3625[_0xfccc('0xe')]>0x1?_0x3625[_0xfccc('0xf')](0x0,-0x1)['join']('\x20'):_0x4c90b9[_0xfccc('0xc')];}return _0xfccc('0x10');}function getLastName(_0x470be2){var _0x149c69=_[_0xfccc('0xb')](_0x470be2[_0xfccc('0x7')]);if(_0x149c69&&_0x149c69[_0xfccc('0xc')]){var _0x2e9063=_0x149c69[_0xfccc('0xc')][_0xfccc('0x11')](/\s+/);return _0x2e9063['length']>0x1?_0x2e9063[_0xfccc('0x12')]():'';}return'';}function getMails(_0x3fa31a,_0x165802){var _0x243f3d='';for(var _0x5cd43e=0x0;_0x5cd43e<_0x165802['value'][_0xfccc('0xe')];_0x5cd43e+=0x1){if(_0x165802['value'][_0x5cd43e][_0xfccc('0x8')]!==_0x3fa31a){if(!_[_0xfccc('0x13')](_0x243f3d)){_0x243f3d+=',';}_0x243f3d+=_0x165802[_0xfccc('0x7')][_0x5cd43e][_0xfccc('0xc')]||_0x165802[_0xfccc('0x7')][_0x5cd43e][_0xfccc('0x8')]||'';_0x243f3d+='\x20<';_0x243f3d+=_0x165802[_0xfccc('0x7')][_0x5cd43e][_0xfccc('0x8')]?_0x165802[_0xfccc('0x7')][_0x5cd43e]['address']:'anonymous'+random['generate'](0x6)+'@xcally.com';_0x243f3d+='>';}}return _0x243f3d;}function parseEmail(_0x336c33,_0x4fa380,_0x1c0f36){if(_0x4fa380[_0xfccc('0x14')]){var _0x1c10e0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1c10e0[_0xfccc('0x15')](_0x4fa380[_0xfccc('0x14')])){_0x4fa380[_0xfccc('0x14')]=_0x4fa380[_0xfccc('0x14')][_0xfccc('0x16')](_0x1c10e0,'');}if(_0x4fa380['html'][_0xfccc('0x17')](_0xfccc('0x18'))){var _0x3da0df=[];_0x4fa380[_0xfccc('0x19')][_0xfccc('0x1a')](_0x19d051=>{_0x3da0df['push'](_0x19d051[_0xfccc('0x1b')]);});var _0x3a45a1=/<img.*? _SRC(.*?)[^>]+>/g;var _0x5caacd=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x299c2b=_0x4fa380[_0xfccc('0x14')]['replace'](_0x5caacd,_0xfccc('0x1c'));var _0x218503=_0x299c2b[_0xfccc('0x16')](_0x3a45a1,'_IMG');for(let _0x176a4f=0x0;_0x176a4f<_0x3da0df[_0xfccc('0xe')];_0x176a4f++){var _0x50f48c=_0x218503['replace']('_IMG',_0xfccc('0x1d')+_0x3da0df[_0x176a4f]+_0xfccc('0x1e'));_0x218503=_0x50f48c;}_0x4fa380[_0xfccc('0x14')]=_0x218503;}_0x1c0f36[_0xfccc('0x1f')]=_0x4fa380[_0xfccc('0x14')];}else{_0x1c0f36[_0xfccc('0x1f')]=_0x4fa380['textAsHtml'];}if(_0x1c0f36[_0xfccc('0x1f')]){_0x1c0f36[_0xfccc('0x1f')]=_0x1c0f36['body'][_0xfccc('0x16')](/<a\s+/gi,_0xfccc('0x20'));}if(_0x4fa380['to']){_0x1c0f36['message'][_0xfccc('0x21')]=getMails(null,_0x4fa380['to']);var _0x1d33be=getMails(_0x336c33[_0xfccc('0x22')],_0x4fa380['to']);if(!_[_0xfccc('0x13')](_0x1d33be)){_0x1c0f36[_0xfccc('0x23')]['cc']+=_0x1d33be;}}if(_0x4fa380['cc']){_0x1c0f36[_0xfccc('0x23')]['originCc']=getMails(null,_0x4fa380['cc']);var _0x32c768=getMails(_0x336c33[_0xfccc('0x22')],_0x4fa380['cc']);if(!_['isEmpty'](_0x32c768)){if(!_[_0xfccc('0x13')](_0x1c0f36[_0xfccc('0x23')]['cc'])){_0x1c0f36[_0xfccc('0x23')]['cc']+=',';}_0x1c0f36[_0xfccc('0x23')]['cc']+=_0x32c768;}}if(!_[_0xfccc('0x17')](_0x1c0f36[_0xfccc('0x23')][_0xfccc('0x21')],_0x336c33[_0xfccc('0x22')])&&!_[_0xfccc('0x17')](_0x1c0f36[_0xfccc('0x23')][_0xfccc('0x24')],_0x336c33[_0xfccc('0x22')])){_0x1c0f36[_0xfccc('0x23')]['bcc']=_0x336c33[_0xfccc('0x22')];}if(_0x4fa380[_0xfccc('0x19')]&&_0x4fa380['attachments'][_0xfccc('0xe')]){_0x1c0f36[_0xfccc('0x23')][_0xfccc('0x25')]=_0x4fa380[_0xfccc('0x19')][_0xfccc('0xe')];for(var _0x551a95=0x0,_0x21cdf3,_0x2da73d,_0x4e40ee;_0x551a95<_0x4fa380['attachments']['length'];_0x551a95+=0x1){if(_0x4fa380[_0xfccc('0x19')][_0x551a95]['type']===_0xfccc('0x26')){_0x4e40ee=_0x4fa380[_0xfccc('0x19')][_0x551a95][_0xfccc('0x1b')]||_0xfccc('0x27')+_0x551a95;_0x21cdf3=util[_0xfccc('0x28')]('%s-%s',Date[_0xfccc('0x29')](),_0x4e40ee);_0x2da73d=path[_0xfccc('0x2a')](config['root'],'server/files/attachments/',_0x21cdf3);fs[_0xfccc('0x2b')](_0x2da73d,_0x4fa380[_0xfccc('0x19')][_0x551a95]['content']);_0x1c0f36[_0xfccc('0x23')][_0xfccc('0x19')]['push']({'name':_0x4e40ee,'basename':_0x21cdf3,'type':_0x4fa380[_0xfccc('0x19')][_0x551a95][_0xfccc('0x2c')],'filepath':_0x2da73d});}}}if(_0x4fa380['headerLines']&&_0x4fa380[_0xfccc('0x2d')]['length']>0x0){var _0x371dd9=[_0xfccc('0x2e'),'X-Auto-Response-Suppress:\x20All',_0xfccc('0x2f')];for(var _0x4c9166=0x0;_0x4c9166<_0x4fa380[_0xfccc('0x2d')][_0xfccc('0xe')];_0x4c9166++){var _0x197314=_[_0xfccc('0xd')](_0x371dd9,_0x4fa380['headerLines'][_0x4c9166][_0xfccc('0x30')]);if(_0x197314>=0x0){_0x1c0f36['isAutoreply']=!![];}}}return _0x1c0f36;}exports['parser']=function(_0x31282a,_0x205be2,_0x510a3b){var _0x10976f={'from':getAddress(_0x205be2[_0xfccc('0x31')]),'firstName':getFirstName(_0x205be2[_0xfccc('0x31')]),'lastName':getLastName(_0x205be2['from']),'mapKey':_0xfccc('0x22'),'message':{'from':getMails(_0x31282a[_0xfccc('0x22')],_0x205be2[_0xfccc('0x31')]),'to':_0x31282a[_0xfccc('0x22')],'cc':'','subject':_0x205be2[_0xfccc('0x32')]||'','messageId':_0x205be2[_0xfccc('0x33')],'inReplyTo':_0x205be2[_0xfccc('0x34')],'sentAt':moment(_0x205be2[_0xfccc('0x35')])['format'](_0xfccc('0x36')),'attach':![],'attachments':[]}};if(!_0x205be2['html']&&!_0x205be2[_0xfccc('0x37')]){var _0x5118d8=_[_0xfccc('0x38')](_0x205be2[_0xfccc('0x19')],{'contentType':_0xfccc('0x39')});if(_0x5118d8[_0xfccc('0xe')]){logger[_0xfccc('0x3a')](util[_0xfccc('0x28')](_0xfccc('0x3b'),_0x205be2[_0xfccc('0x33')]));tnef[_0xfccc('0x3c')](_['first'](_0x5118d8)[_0xfccc('0x3d')],function(_0x124ac8,_0xc416e8){if(_0xc416e8){_0x205be2[_0xfccc('0x14')]=_0xc416e8['BodyHTML']||_0xfccc('0x3e');if(_0xc416e8[_0xfccc('0x3f')]){for(var _0x19ba40=0x0;_0x19ba40<_0xc416e8[_0xfccc('0x3f')]['length'];_0x19ba40++){var _0x2ac970=_0xc416e8[_0xfccc('0x3f')][_0x19ba40];_0x10976f[_0xfccc('0x23')][_0xfccc('0x19')][_0xfccc('0x40')]({'filename':_0x2ac970['Title'],'content':Buffer[_0xfccc('0x31')](_0x2ac970['Data'])});}}}_0x510a3b(parseEmail(_0x31282a,_0x205be2,_0x10976f));});}else{_0x205be2['html']='<p>Empty\x20message</p>';_0x510a3b(parseEmail(_0x31282a,_0x205be2,_0x10976f));}}else{_0x510a3b(parseEmail(_0x31282a,_0x205be2,_0x10976f));}};exports['generateXOAuth2Token']=function(_0x302ac1,_0x2108c7){var _0x463bce=[_0xfccc('0x41')+(_0x2108c7||''),_0xfccc('0x42')+_0x302ac1,'',''];return Buffer[_0xfccc('0x31')](_0x463bce[_0xfccc('0x2a')]('\ 1'),_0xfccc('0x43'))[_0xfccc('0x44')](_0xfccc('0x45'));};