4ae96f6bb3d0224d8dd13090d0609c522ed35fe0
[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 _0x590b=['%s-%s','root','writeFileSync','content','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','messageId','inReplyTo','date','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','BodyHTML','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','toString','base64','moment','path','util','../../../config/logger','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf','split','join','Anonymous','length','pop','isEmpty','html','replace','includes','<img','attachments','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','originTo','email','message','originCc','bcc','attach','type','attachment','format'];(function(_0x13b8f3,_0x442821){var _0x1a6d06=function(_0x5126f2){while(--_0x5126f2){_0x13b8f3['push'](_0x13b8f3['shift']());}};_0x1a6d06(++_0x442821);}(_0x590b,0x14b));var _0xb590=function(_0x5df952,_0x3940da){_0x5df952=_0x5df952-0x0;var _0xf5400a=_0x590b[_0x5df952];return _0xf5400a;};'use strict';var _=require('lodash');var moment=require(_0xb590('0x0'));var random=require('randomstring');var fs=require('fs');var path=require(_0xb590('0x1'));var util=require(_0xb590('0x2'));var tnef=require('node-tnef');var logger=require(_0xb590('0x3'))('email');var config=require(_0xb590('0x4'));function getAddress(_0x162d04){var _0x5a9bbe=_[_0xb590('0x5')](_0x162d04[_0xb590('0x6')]);return _0x5a9bbe&&_0x5a9bbe[_0xb590('0x7')]?_0x5a9bbe[_0xb590('0x7')]:_0xb590('0x8')+random[_0xb590('0x9')](0x6)+_0xb590('0xa');}function getFirstName(_0x8fa575){var _0x5143f1=_[_0xb590('0x5')](_0x8fa575[_0xb590('0x6')]);if(_0x5143f1&&_0x5143f1[_0xb590('0xb')]){if(_0x5143f1[_0xb590('0xb')]==_0x5143f1['address']){return _0x5143f1[_0xb590('0xb')][_0xb590('0xc')](0x0,_0x5143f1[_0xb590('0xb')][_0xb590('0xd')]('@'));}var _0x4cc5c2=_0x5143f1[_0xb590('0xb')][_0xb590('0xe')](/\s+/);return _0x4cc5c2['length']>0x1?_0x4cc5c2['slice'](0x0,-0x1)[_0xb590('0xf')]('\x20'):_0x5143f1[_0xb590('0xb')];}return _0xb590('0x10');}function getLastName(_0x5f1c5a){var _0x4d000e=_[_0xb590('0x5')](_0x5f1c5a[_0xb590('0x6')]);if(_0x4d000e&&_0x4d000e['name']){var _0x3c69d1=_0x4d000e['name'][_0xb590('0xe')](/\s+/);return _0x3c69d1[_0xb590('0x11')]>0x1?_0x3c69d1[_0xb590('0x12')]():'';}return'';}function getMails(_0x213260,_0x362841){var _0x5d863e='';for(var _0x1e29f9=0x0;_0x1e29f9<_0x362841[_0xb590('0x6')][_0xb590('0x11')];_0x1e29f9+=0x1){if(_0x362841[_0xb590('0x6')][_0x1e29f9][_0xb590('0x7')]!==_0x213260){if(!_[_0xb590('0x13')](_0x5d863e)){_0x5d863e+=',';}_0x5d863e+=_0x362841[_0xb590('0x6')][_0x1e29f9][_0xb590('0xb')]||_0x362841['value'][_0x1e29f9][_0xb590('0x7')]||'';_0x5d863e+='\x20<';_0x5d863e+=_0x362841[_0xb590('0x6')][_0x1e29f9][_0xb590('0x7')]?_0x362841[_0xb590('0x6')][_0x1e29f9][_0xb590('0x7')]:_0xb590('0x8')+random[_0xb590('0x9')](0x6)+_0xb590('0xa');_0x5d863e+='>';}}return _0x5d863e;}function parseEmail(_0x362358,_0x2c58a9,_0x5775d6){if(_0x2c58a9[_0xb590('0x14')]){var _0x440d9f=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x440d9f['test'](_0x2c58a9[_0xb590('0x14')])){_0x2c58a9[_0xb590('0x14')]=_0x2c58a9[_0xb590('0x14')][_0xb590('0x15')](_0x440d9f,'');}if(_0x2c58a9[_0xb590('0x14')][_0xb590('0x16')](_0xb590('0x17'))){var _0x17310b=[];_0x2c58a9[_0xb590('0x18')][_0xb590('0x19')](_0x3374f0=>{_0x17310b[_0xb590('0x1a')](_0x3374f0[_0xb590('0x1b')]);});var _0x147e49=/<img.*? _SRC(.*?)[^>]+>/g;var _0x5a523e=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x3e9bde=_0x2c58a9[_0xb590('0x14')][_0xb590('0x15')](_0x5a523e,_0xb590('0x1c'));var _0x3e083b=_0x3e9bde[_0xb590('0x15')](_0x147e49,_0xb590('0x1d'));for(let _0x1f84aa=0x0;_0x1f84aa<_0x17310b[_0xb590('0x11')];_0x1f84aa++){var _0x565d87=_0x3e083b[_0xb590('0x15')](_0xb590('0x1d'),_0xb590('0x1e')+_0x17310b[_0x1f84aa]+_0xb590('0x1f'));_0x3e083b=_0x565d87;}_0x2c58a9[_0xb590('0x14')]=_0x3e083b;}_0x5775d6[_0xb590('0x20')]=_0x2c58a9[_0xb590('0x14')];}else{_0x5775d6['body']=_0x2c58a9[_0xb590('0x21')];}if(_0x5775d6['body']){_0x5775d6[_0xb590('0x20')]=_0x5775d6[_0xb590('0x20')][_0xb590('0x15')](/<a\s+/gi,_0xb590('0x22'));}if(_0x2c58a9['to']){_0x5775d6['message'][_0xb590('0x23')]=getMails(null,_0x2c58a9['to']);var _0x170390=getMails(_0x362358[_0xb590('0x24')],_0x2c58a9['to']);if(!_['isEmpty'](_0x170390)){_0x5775d6['message']['cc']+=_0x170390;}}if(_0x2c58a9['cc']){_0x5775d6[_0xb590('0x25')][_0xb590('0x26')]=getMails(null,_0x2c58a9['cc']);var _0x5068c0=getMails(_0x362358['email'],_0x2c58a9['cc']);if(!_['isEmpty'](_0x5068c0)){if(!_['isEmpty'](_0x5775d6[_0xb590('0x25')]['cc'])){_0x5775d6[_0xb590('0x25')]['cc']+=',';}_0x5775d6[_0xb590('0x25')]['cc']+=_0x5068c0;}}if(!_[_0xb590('0x16')](_0x5775d6[_0xb590('0x25')][_0xb590('0x23')],_0x362358[_0xb590('0x24')])&&!_[_0xb590('0x16')](_0x5775d6[_0xb590('0x25')][_0xb590('0x26')],_0x362358[_0xb590('0x24')])){_0x5775d6[_0xb590('0x25')][_0xb590('0x27')]=_0x362358[_0xb590('0x24')];}if(_0x2c58a9[_0xb590('0x18')]&&_0x2c58a9[_0xb590('0x18')][_0xb590('0x11')]){_0x5775d6[_0xb590('0x25')][_0xb590('0x28')]=_0x2c58a9[_0xb590('0x18')][_0xb590('0x11')];for(var _0x95c508=0x0,_0x142676,_0x305bb5,_0x38402d;_0x95c508<_0x2c58a9[_0xb590('0x18')][_0xb590('0x11')];_0x95c508+=0x1){if(_0x2c58a9['attachments'][_0x95c508][_0xb590('0x29')]===_0xb590('0x2a')){_0x38402d=_0x2c58a9['attachments'][_0x95c508][_0xb590('0x1b')]||'attachment-'+_0x95c508;_0x142676=util[_0xb590('0x2b')](_0xb590('0x2c'),Date['now'](),_0x38402d);_0x305bb5=path['join'](config[_0xb590('0x2d')],'server/files/attachments/',_0x142676);fs[_0xb590('0x2e')](_0x305bb5,_0x2c58a9[_0xb590('0x18')][_0x95c508][_0xb590('0x2f')]);_0x5775d6[_0xb590('0x25')]['attachments']['push']({'name':_0x38402d,'basename':_0x142676,'type':_0x2c58a9[_0xb590('0x18')][_0x95c508]['contentType'],'filepath':_0x305bb5});}}}if(_0x2c58a9[_0xb590('0x30')]&&_0x2c58a9[_0xb590('0x30')][_0xb590('0x11')]>0x0){var _0x222e62=[_0xb590('0x31'),_0xb590('0x32'),_0xb590('0x33')];for(var _0x22df3a=0x0;_0x22df3a<_0x2c58a9[_0xb590('0x30')][_0xb590('0x11')];_0x22df3a++){var _0x168623=_['indexOf'](_0x222e62,_0x2c58a9['headerLines'][_0x22df3a][_0xb590('0x34')]);if(_0x168623>=0x0){_0x5775d6[_0xb590('0x35')]=!![];}}}return _0x5775d6;}exports[_0xb590('0x36')]=function(_0x3a6c60,_0x3119e5,_0x57fb0e){var _0x502254={'from':getAddress(_0x3119e5[_0xb590('0x37')]),'firstName':getFirstName(_0x3119e5['from']),'lastName':getLastName(_0x3119e5[_0xb590('0x37')]),'mapKey':_0xb590('0x24'),'message':{'from':getMails(_0x3a6c60[_0xb590('0x24')],_0x3119e5['from']),'to':_0x3a6c60[_0xb590('0x24')],'cc':'','subject':_0x3119e5[_0xb590('0x38')]||'','messageId':_0x3119e5[_0xb590('0x39')],'inReplyTo':_0x3119e5[_0xb590('0x3a')],'sentAt':moment(_0x3119e5[_0xb590('0x3b')])[_0xb590('0x2b')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x3119e5[_0xb590('0x14')]&&!_0x3119e5[_0xb590('0x21')]){var _0x5a47cf=_[_0xb590('0x3c')](_0x3119e5['attachments'],{'contentType':_0xb590('0x3d')});if(_0x5a47cf[_0xb590('0x11')]){logger[_0xb590('0x3e')](util[_0xb590('0x2b')](_0xb590('0x3f'),_0x3119e5['messageId']));tnef[_0xb590('0x40')](_[_0xb590('0x41')](_0x5a47cf)['content'],function(_0x13a00d,_0x249666){if(_0x249666){_0x3119e5[_0xb590('0x14')]=_0x249666[_0xb590('0x42')]||'<p>Empty\x20message</p>';if(_0x249666[_0xb590('0x43')]){for(var _0x5d7224=0x0;_0x5d7224<_0x249666[_0xb590('0x43')]['length'];_0x5d7224++){var _0x49c741=_0x249666[_0xb590('0x43')][_0x5d7224];_0x502254[_0xb590('0x25')][_0xb590('0x18')][_0xb590('0x1a')]({'filename':_0x49c741[_0xb590('0x44')],'content':Buffer[_0xb590('0x37')](_0x49c741[_0xb590('0x45')])});}}}_0x57fb0e(parseEmail(_0x3a6c60,_0x3119e5,_0x502254));});}else{_0x3119e5[_0xb590('0x14')]='<p>Empty\x20message</p>';_0x57fb0e(parseEmail(_0x3a6c60,_0x3119e5,_0x502254));}}else{_0x57fb0e(parseEmail(_0x3a6c60,_0x3119e5,_0x502254));}};exports[_0xb590('0x46')]=function(_0x54947e,_0xe664a5){var _0x41cd0b=[_0xb590('0x47')+(_0xe664a5||''),_0xb590('0x48')+_0x54947e,'',''];return Buffer[_0xb590('0x37')](_0x41cd0b[_0xb590('0xf')]('\ 1'),'utf-8')[_0xb590('0x49')](_0xb590('0x4a'));};