Built motion from commit 1fa89557.|2.6.10
[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 _0xa25c=['value','name','indexOf','split','length','slice','join','isEmpty','html','test','includes','<img','attachments','forEach','push','filename','replace','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','type','attachment-','format','now','server/files/attachments/','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','parser','from','inReplyTo','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','messageId','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','auth=Bearer\x20','toString','base64','lodash','moment','randomstring','path','util','node-tnef','head','address','anonymous','generate','@xcally.com'];(function(_0x313866,_0x3ecd92){var _0x5a818f=function(_0x507e58){while(--_0x507e58){_0x313866['push'](_0x313866['shift']());}};_0x5a818f(++_0x3ecd92);}(_0xa25c,0x153));var _0xca25=function(_0x45682b,_0x22ef44){_0x45682b=_0x45682b-0x0;var _0x28c3cd=_0xa25c[_0x45682b];return _0x28c3cd;};'use strict';var _=require(_0xca25('0x0'));var moment=require(_0xca25('0x1'));var random=require(_0xca25('0x2'));var fs=require('fs');var path=require(_0xca25('0x3'));var util=require(_0xca25('0x4'));var tnef=require(_0xca25('0x5'));var logger=require('../../../config/logger')('email');var config=require('../../../config/environment');function getAddress(_0x391b90){var _0x558d7d=_[_0xca25('0x6')](_0x391b90['value']);return _0x558d7d&&_0x558d7d[_0xca25('0x7')]?_0x558d7d[_0xca25('0x7')]:_0xca25('0x8')+random[_0xca25('0x9')](0x6)+_0xca25('0xa');}function getFirstName(_0x35b8f6){var _0x171c3b=_['head'](_0x35b8f6[_0xca25('0xb')]);if(_0x171c3b&&_0x171c3b[_0xca25('0xc')]){if(_0x171c3b['name']==_0x171c3b[_0xca25('0x7')]){return _0x171c3b[_0xca25('0xc')]['substring'](0x0,_0x171c3b[_0xca25('0xc')][_0xca25('0xd')]('@'));}var _0x28f9c8=_0x171c3b[_0xca25('0xc')][_0xca25('0xe')](/\s+/);return _0x28f9c8[_0xca25('0xf')]>0x1?_0x28f9c8[_0xca25('0x10')](0x0,-0x1)[_0xca25('0x11')]('\x20'):_0x171c3b[_0xca25('0xc')];}return'Anonymous';}function getLastName(_0x4dcb9b){var _0x2f403f=_[_0xca25('0x6')](_0x4dcb9b['value']);if(_0x2f403f&&_0x2f403f[_0xca25('0xc')]){var _0x5714ee=_0x2f403f[_0xca25('0xc')][_0xca25('0xe')](/\s+/);return _0x5714ee['length']>0x1?_0x5714ee['pop']():'';}return'';}function getMails(_0x184364,_0x372289){var _0x52463a='';for(var _0x568dc7=0x0;_0x568dc7<_0x372289[_0xca25('0xb')][_0xca25('0xf')];_0x568dc7+=0x1){if(_0x372289[_0xca25('0xb')][_0x568dc7][_0xca25('0x7')]!==_0x184364){if(!_[_0xca25('0x12')](_0x52463a)){_0x52463a+=',';}_0x52463a+=_0x372289[_0xca25('0xb')][_0x568dc7][_0xca25('0xc')]||_0x372289['value'][_0x568dc7][_0xca25('0x7')]||'';_0x52463a+='\x20<';_0x52463a+=_0x372289[_0xca25('0xb')][_0x568dc7][_0xca25('0x7')]?_0x372289[_0xca25('0xb')][_0x568dc7][_0xca25('0x7')]:_0xca25('0x8')+random[_0xca25('0x9')](0x6)+_0xca25('0xa');_0x52463a+='>';}}return _0x52463a;}function parseEmail(_0x47aa56,_0x12489c,_0x19bfff){if(_0x12489c[_0xca25('0x13')]){var _0x3038c0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x3038c0[_0xca25('0x14')](_0x12489c['html'])){_0x12489c['html']=_0x12489c[_0xca25('0x13')]['replace'](_0x3038c0,'');}if(_0x12489c[_0xca25('0x13')][_0xca25('0x15')](_0xca25('0x16'))){var _0x15843c=[];_0x12489c[_0xca25('0x17')][_0xca25('0x18')](_0x455cd0=>{_0x15843c[_0xca25('0x19')](_0x455cd0[_0xca25('0x1a')]);});var _0x273b25=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1df037=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x27710a=_0x12489c[_0xca25('0x13')][_0xca25('0x1b')](_0x1df037,_0xca25('0x1c'));var _0x530324=_0x27710a[_0xca25('0x1b')](_0x273b25,'_IMG');for(let _0x46722b=0x0;_0x46722b<_0x15843c['length'];_0x46722b++){var _0x7fbef7=_0x530324[_0xca25('0x1b')](_0xca25('0x1d'),_0xca25('0x1e')+_0x15843c[_0x46722b]+_0xca25('0x1f'));_0x530324=_0x7fbef7;}_0x12489c[_0xca25('0x13')]=_0x530324;}_0x19bfff[_0xca25('0x20')]=_0x12489c[_0xca25('0x13')];}else{_0x19bfff[_0xca25('0x20')]=_0x12489c[_0xca25('0x21')];}if(_0x19bfff[_0xca25('0x20')]){_0x19bfff[_0xca25('0x20')]=_0x19bfff['body']['replace'](/<a\s+/gi,_0xca25('0x22'));}if(_0x12489c['to']){_0x19bfff[_0xca25('0x23')][_0xca25('0x24')]=getMails(null,_0x12489c['to']);var _0x5b13ef=getMails(_0x47aa56[_0xca25('0x25')],_0x12489c['to']);if(!_[_0xca25('0x12')](_0x5b13ef)){_0x19bfff[_0xca25('0x23')]['cc']+=_0x5b13ef;}}if(_0x12489c['cc']){_0x19bfff[_0xca25('0x23')]['originCc']=getMails(null,_0x12489c['cc']);var _0x5dd2f1=getMails(_0x47aa56[_0xca25('0x25')],_0x12489c['cc']);if(!_[_0xca25('0x12')](_0x5dd2f1)){if(!_[_0xca25('0x12')](_0x19bfff[_0xca25('0x23')]['cc'])){_0x19bfff[_0xca25('0x23')]['cc']+=',';}_0x19bfff[_0xca25('0x23')]['cc']+=_0x5dd2f1;}}if(!_[_0xca25('0x15')](_0x19bfff['message'][_0xca25('0x24')],_0x47aa56[_0xca25('0x25')])&&!_[_0xca25('0x15')](_0x19bfff[_0xca25('0x23')][_0xca25('0x26')],_0x47aa56[_0xca25('0x25')])){_0x19bfff[_0xca25('0x23')]['bcc']=_0x47aa56[_0xca25('0x25')];}if(_0x12489c[_0xca25('0x17')]&&_0x12489c[_0xca25('0x17')]['length']){_0x19bfff[_0xca25('0x23')]['attach']=_0x12489c[_0xca25('0x17')][_0xca25('0xf')];for(var _0x38a555=0x0,_0x3ce614,_0x1eaa67,_0x55d32a;_0x38a555<_0x12489c['attachments'][_0xca25('0xf')];_0x38a555+=0x1){if(_0x12489c['attachments'][_0x38a555][_0xca25('0x27')]==='attachment'){_0x55d32a=_0x12489c['attachments'][_0x38a555][_0xca25('0x1a')]||_0xca25('0x28')+_0x38a555;_0x3ce614=util[_0xca25('0x29')]('%s-%s',Date[_0xca25('0x2a')](),_0x55d32a);_0x1eaa67=path[_0xca25('0x11')](config['root'],_0xca25('0x2b'),_0x3ce614);fs[_0xca25('0x2c')](_0x1eaa67,_0x12489c[_0xca25('0x17')][_0x38a555][_0xca25('0x2d')]);_0x19bfff['message'][_0xca25('0x17')][_0xca25('0x19')]({'name':_0x55d32a,'basename':_0x3ce614,'type':_0x12489c[_0xca25('0x17')][_0x38a555][_0xca25('0x2e')],'filepath':_0x1eaa67});}}}if(_0x12489c[_0xca25('0x2f')]&&_0x12489c[_0xca25('0x2f')][_0xca25('0xf')]>0x0){var _0x1a0f73=[_0xca25('0x30'),_0xca25('0x31'),_0xca25('0x32')];for(var _0x3a0279=0x0;_0x3a0279<_0x12489c[_0xca25('0x2f')][_0xca25('0xf')];_0x3a0279++){var _0x136dfd=_[_0xca25('0xd')](_0x1a0f73,_0x12489c[_0xca25('0x2f')][_0x3a0279][_0xca25('0x33')]);if(_0x136dfd>=0x0){_0x19bfff['isAutoreply']=!![];}}}return _0x19bfff;}exports[_0xca25('0x34')]=function(_0x17ea05,_0x2f605c,_0x49b152){var _0x534f4c={'from':getAddress(_0x2f605c[_0xca25('0x35')]),'firstName':getFirstName(_0x2f605c[_0xca25('0x35')]),'lastName':getLastName(_0x2f605c[_0xca25('0x35')]),'mapKey':_0xca25('0x25'),'message':{'from':getMails(_0x17ea05[_0xca25('0x25')],_0x2f605c[_0xca25('0x35')]),'to':_0x17ea05[_0xca25('0x25')],'cc':'','subject':_0x2f605c['subject']||'','messageId':_0x2f605c['messageId'],'inReplyTo':_0x2f605c[_0xca25('0x36')],'sentAt':moment(_0x2f605c['date'])[_0xca25('0x29')](_0xca25('0x37')),'attach':![],'attachments':[]}};if(!_0x2f605c[_0xca25('0x13')]&&!_0x2f605c[_0xca25('0x21')]){var _0x5a10d7=_[_0xca25('0x38')](_0x2f605c['attachments'],{'contentType':_0xca25('0x39')});if(_0x5a10d7['length']){logger[_0xca25('0x3a')](util[_0xca25('0x29')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x2f605c[_0xca25('0x3b')]));tnef[_0xca25('0x3c')](_[_0xca25('0x3d')](_0x5a10d7)['content'],function(_0x186026,_0x62de69){if(_0x62de69){_0x2f605c[_0xca25('0x13')]=_0x62de69['BodyHTML']||_0xca25('0x3e');if(_0x62de69[_0xca25('0x3f')]){for(var _0x475df4=0x0;_0x475df4<_0x62de69[_0xca25('0x3f')][_0xca25('0xf')];_0x475df4++){var _0xde246a=_0x62de69[_0xca25('0x3f')][_0x475df4];_0x534f4c[_0xca25('0x23')]['attachments'][_0xca25('0x19')]({'filename':_0xde246a[_0xca25('0x40')],'content':Buffer[_0xca25('0x35')](_0xde246a[_0xca25('0x41')])});}}}_0x49b152(parseEmail(_0x17ea05,_0x2f605c,_0x534f4c));});}else{_0x2f605c['html']=_0xca25('0x3e');_0x49b152(parseEmail(_0x17ea05,_0x2f605c,_0x534f4c));}}else{_0x49b152(parseEmail(_0x17ea05,_0x2f605c,_0x534f4c));}};exports[_0xca25('0x42')]=function(_0x1a223c,_0x156d59){var _0x88c5e0=['user='+(_0x156d59||''),_0xca25('0x43')+_0x1a223c,'',''];return Buffer[_0xca25('0x35')](_0x88c5e0[_0xca25('0x11')]('\ 1'),'utf-8')[_0xca25('0x44')](_0xca25('0x45'));};