Built motion from commit fe909640.|2.6.8
[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 _0x6997=['pop','isEmpty','@xcally.com','html','replace','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','includes','bcc','attachments','attach','type','attachment','format','now','root','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','parser','from','subject','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Data','generateXOAuth2Token','auth=Bearer\x20','utf-8','toString','base64','moment','path','util','node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','generate','name','substring','indexOf','split','length','join','Anonymous'];(function(_0x334350,_0x27a7e9){var _0x45ad9c=function(_0x33b40f){while(--_0x33b40f){_0x334350['push'](_0x334350['shift']());}};_0x45ad9c(++_0x27a7e9);}(_0x6997,0x164));var _0x7699=function(_0x22fdcb,_0x507c5f){_0x22fdcb=_0x22fdcb-0x0;var _0x506172=_0x6997[_0x22fdcb];return _0x506172;};'use strict';var _=require('lodash');var moment=require(_0x7699('0x0'));var random=require('randomstring');var fs=require('fs');var path=require(_0x7699('0x1'));var util=require(_0x7699('0x2'));var tnef=require(_0x7699('0x3'));var logger=require(_0x7699('0x4'))(_0x7699('0x5'));var config=require(_0x7699('0x6'));function getAddress(_0x18fd7a){var _0x3e0d04=_[_0x7699('0x7')](_0x18fd7a[_0x7699('0x8')]);return _0x3e0d04&&_0x3e0d04[_0x7699('0x9')]?_0x3e0d04[_0x7699('0x9')]:_0x7699('0xa')+random[_0x7699('0xb')](0x6)+'@xcally.com';}function getFirstName(_0x93637f){var _0x1ccea2=_[_0x7699('0x7')](_0x93637f[_0x7699('0x8')]);if(_0x1ccea2&&_0x1ccea2[_0x7699('0xc')]){if(_0x1ccea2[_0x7699('0xc')]==_0x1ccea2[_0x7699('0x9')]){return _0x1ccea2[_0x7699('0xc')][_0x7699('0xd')](0x0,_0x1ccea2[_0x7699('0xc')][_0x7699('0xe')]('@'));}var _0x3ab10c=_0x1ccea2[_0x7699('0xc')][_0x7699('0xf')](/\s+/);return _0x3ab10c[_0x7699('0x10')]>0x1?_0x3ab10c['slice'](0x0,-0x1)[_0x7699('0x11')]('\x20'):_0x1ccea2['name'];}return _0x7699('0x12');}function getLastName(_0xb9c991){var _0x1775b0=_[_0x7699('0x7')](_0xb9c991[_0x7699('0x8')]);if(_0x1775b0&&_0x1775b0[_0x7699('0xc')]){var _0x46405e=_0x1775b0['name']['split'](/\s+/);return _0x46405e[_0x7699('0x10')]>0x1?_0x46405e[_0x7699('0x13')]():'';}return'';}function getMails(_0x34b606,_0x1ee405){var _0xe5ae5c='';for(var _0x547949=0x0;_0x547949<_0x1ee405[_0x7699('0x8')]['length'];_0x547949+=0x1){if(_0x1ee405[_0x7699('0x8')][_0x547949][_0x7699('0x9')]!==_0x34b606){if(!_[_0x7699('0x14')](_0xe5ae5c)){_0xe5ae5c+=',';}_0xe5ae5c+=_0x1ee405[_0x7699('0x8')][_0x547949]['name']||_0x1ee405[_0x7699('0x8')][_0x547949]['address']||'';_0xe5ae5c+='\x20<';_0xe5ae5c+=_0x1ee405['value'][_0x547949]['address']?_0x1ee405[_0x7699('0x8')][_0x547949][_0x7699('0x9')]:_0x7699('0xa')+random[_0x7699('0xb')](0x6)+_0x7699('0x15');_0xe5ae5c+='>';}}return _0xe5ae5c;}function parseEmail(_0x346453,_0x2d22a3,_0x49d994){if(_0x2d22a3[_0x7699('0x16')]){var _0x6212f8=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x6212f8['test'](_0x2d22a3[_0x7699('0x16')])){_0x2d22a3[_0x7699('0x16')]=_0x2d22a3['html'][_0x7699('0x17')](_0x6212f8,'');}if(_0x2d22a3[_0x7699('0x16')]['includes']('<img')){var _0x1e703d=[];_0x2d22a3['attachments'][_0x7699('0x18')](_0x293eb9=>{_0x1e703d[_0x7699('0x19')](_0x293eb9[_0x7699('0x1a')]);});var _0x40e050=/<img.*? _SRC(.*?)[^>]+>/g;var _0x59f2e3=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x1f2be7=_0x2d22a3[_0x7699('0x16')][_0x7699('0x17')](_0x59f2e3,_0x7699('0x1b'));var _0x3d9a49=_0x1f2be7[_0x7699('0x17')](_0x40e050,_0x7699('0x1c'));for(let _0x2325a3=0x0;_0x2325a3<_0x1e703d['length'];_0x2325a3++){var _0x4b5bb3=_0x3d9a49['replace'](_0x7699('0x1c'),_0x7699('0x1d')+_0x1e703d[_0x2325a3]+_0x7699('0x1e'));_0x3d9a49=_0x4b5bb3;}_0x2d22a3['html']=_0x3d9a49;}_0x49d994['body']=_0x2d22a3[_0x7699('0x16')];}else{_0x49d994[_0x7699('0x1f')]=_0x2d22a3[_0x7699('0x20')];}if(_0x49d994[_0x7699('0x1f')]){_0x49d994[_0x7699('0x1f')]=_0x49d994[_0x7699('0x1f')][_0x7699('0x17')](/<a\s+/gi,_0x7699('0x21'));}if(_0x2d22a3['to']){_0x49d994[_0x7699('0x22')][_0x7699('0x23')]=getMails(null,_0x2d22a3['to']);var _0x4e29df=getMails(_0x346453[_0x7699('0x5')],_0x2d22a3['to']);if(!_['isEmpty'](_0x4e29df)){_0x49d994[_0x7699('0x22')]['cc']+=_0x4e29df;}}if(_0x2d22a3['cc']){_0x49d994[_0x7699('0x22')][_0x7699('0x24')]=getMails(null,_0x2d22a3['cc']);var _0x573609=getMails(_0x346453['email'],_0x2d22a3['cc']);if(!_[_0x7699('0x14')](_0x573609)){if(!_[_0x7699('0x14')](_0x49d994['message']['cc'])){_0x49d994[_0x7699('0x22')]['cc']+=',';}_0x49d994[_0x7699('0x22')]['cc']+=_0x573609;}}if(!_[_0x7699('0x25')](_0x49d994[_0x7699('0x22')][_0x7699('0x23')],_0x346453['email'])&&!_[_0x7699('0x25')](_0x49d994['message'][_0x7699('0x24')],_0x346453[_0x7699('0x5')])){_0x49d994['message'][_0x7699('0x26')]=_0x346453[_0x7699('0x5')];}if(_0x2d22a3[_0x7699('0x27')]&&_0x2d22a3[_0x7699('0x27')][_0x7699('0x10')]){_0x49d994['message'][_0x7699('0x28')]=_0x2d22a3[_0x7699('0x27')][_0x7699('0x10')];for(var _0x85d6be=0x0,_0x4c6934,_0x2d2bf4,_0x5aee16;_0x85d6be<_0x2d22a3[_0x7699('0x27')][_0x7699('0x10')];_0x85d6be+=0x1){if(_0x2d22a3['attachments'][_0x85d6be][_0x7699('0x29')]===_0x7699('0x2a')){_0x5aee16=_0x2d22a3[_0x7699('0x27')][_0x85d6be][_0x7699('0x1a')]||'attachment-'+_0x85d6be;_0x4c6934=util[_0x7699('0x2b')]('%s-%s',Date[_0x7699('0x2c')](),_0x5aee16);_0x2d2bf4=path[_0x7699('0x11')](config[_0x7699('0x2d')],'server/files/attachments/',_0x4c6934);fs[_0x7699('0x2e')](_0x2d2bf4,_0x2d22a3[_0x7699('0x27')][_0x85d6be][_0x7699('0x2f')]);_0x49d994[_0x7699('0x22')][_0x7699('0x27')][_0x7699('0x19')]({'name':_0x5aee16,'basename':_0x4c6934,'type':_0x2d22a3[_0x7699('0x27')][_0x85d6be][_0x7699('0x30')],'filepath':_0x2d2bf4});}}}if(_0x2d22a3['headerLines']&&_0x2d22a3[_0x7699('0x31')][_0x7699('0x10')]>0x0){var _0x5e6733=[_0x7699('0x32'),_0x7699('0x33'),'Precedence:\x20auto_reply'];for(var _0x29d290=0x0;_0x29d290<_0x2d22a3['headerLines'][_0x7699('0x10')];_0x29d290++){var _0x2f0c74=_[_0x7699('0xe')](_0x5e6733,_0x2d22a3[_0x7699('0x31')][_0x29d290][_0x7699('0x34')]);if(_0x2f0c74>=0x0){_0x49d994[_0x7699('0x35')]=!![];}}}return _0x49d994;}exports[_0x7699('0x36')]=function(_0x44e0e2,_0x5b20bc,_0x2fd4e5){var _0x4ed7ca={'from':getAddress(_0x5b20bc[_0x7699('0x37')]),'firstName':getFirstName(_0x5b20bc['from']),'lastName':getLastName(_0x5b20bc[_0x7699('0x37')]),'mapKey':_0x7699('0x5'),'message':{'from':getMails(_0x44e0e2[_0x7699('0x5')],_0x5b20bc[_0x7699('0x37')]),'to':_0x44e0e2[_0x7699('0x5')],'cc':'','subject':_0x5b20bc[_0x7699('0x38')]||'','messageId':_0x5b20bc['messageId'],'inReplyTo':_0x5b20bc[_0x7699('0x39')],'sentAt':moment(_0x5b20bc[_0x7699('0x3a')])[_0x7699('0x2b')](_0x7699('0x3b')),'attach':![],'attachments':[]}};if(!_0x5b20bc['html']&&!_0x5b20bc[_0x7699('0x20')]){var _0x45346a=_[_0x7699('0x3c')](_0x5b20bc[_0x7699('0x27')],{'contentType':_0x7699('0x3d')});if(_0x45346a[_0x7699('0x10')]){logger['info'](util['format'](_0x7699('0x3e'),_0x5b20bc[_0x7699('0x3f')]));tnef[_0x7699('0x40')](_[_0x7699('0x41')](_0x45346a)[_0x7699('0x2f')],function(_0x547d10,_0x5b4602){if(_0x5b4602){_0x5b20bc[_0x7699('0x16')]=_0x5b4602[_0x7699('0x42')]||_0x7699('0x43');if(_0x5b4602[_0x7699('0x44')]){for(var _0x1a3b2c=0x0;_0x1a3b2c<_0x5b4602[_0x7699('0x44')]['length'];_0x1a3b2c++){var _0x408de1=_0x5b4602[_0x7699('0x44')][_0x1a3b2c];_0x4ed7ca[_0x7699('0x22')][_0x7699('0x27')]['push']({'filename':_0x408de1['Title'],'content':Buffer[_0x7699('0x37')](_0x408de1[_0x7699('0x45')])});}}}_0x2fd4e5(parseEmail(_0x44e0e2,_0x5b20bc,_0x4ed7ca));});}else{_0x5b20bc[_0x7699('0x16')]=_0x7699('0x43');_0x2fd4e5(parseEmail(_0x44e0e2,_0x5b20bc,_0x4ed7ca));}}else{_0x2fd4e5(parseEmail(_0x44e0e2,_0x5b20bc,_0x4ed7ca));}};exports[_0x7699('0x46')]=function(_0x5addb2,_0x20a304){var _0x3020af=['user='+(_0x20a304||''),_0x7699('0x47')+_0x5addb2,'',''];return Buffer['from'](_0x3020af[_0x7699('0x11')]('\ 1'),_0x7699('0x48'))[_0x7699('0x49')](_0x7699('0x4a'));};