9653b80060eb2e7888bae6b5c0ca48aa2a8b9b44
[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 _0x3ee3=['<img','attachments','forEach','push','filename','replace','_SRC','_IMG','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','includes','bcc','type','attachment','attachment-','format','%s-%s','root','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','from','messageId','inReplyTo','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','base64','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','email','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf','split','length','join','Anonymous','isEmpty','html','test'];(function(_0x2637ac,_0x377857){var _0x4a5758=function(_0x5d5043){while(--_0x5d5043){_0x2637ac['push'](_0x2637ac['shift']());}};_0x4a5758(++_0x377857);}(_0x3ee3,0x1d9));var _0x33ee=function(_0x3ab9ee,_0x4a74b8){_0x3ab9ee=_0x3ab9ee-0x0;var _0x82ee88=_0x3ee3[_0x3ab9ee];return _0x82ee88;};'use strict';var _=require(_0x33ee('0x0'));var moment=require(_0x33ee('0x1'));var random=require(_0x33ee('0x2'));var fs=require('fs');var path=require(_0x33ee('0x3'));var util=require(_0x33ee('0x4'));var tnef=require(_0x33ee('0x5'));var logger=require(_0x33ee('0x6'))(_0x33ee('0x7'));var config=require('../../../config/environment');function getAddress(_0x4a8622){var _0x2921ab=_[_0x33ee('0x8')](_0x4a8622[_0x33ee('0x9')]);return _0x2921ab&&_0x2921ab[_0x33ee('0xa')]?_0x2921ab[_0x33ee('0xa')]:_0x33ee('0xb')+random[_0x33ee('0xc')](0x6)+_0x33ee('0xd');}function getFirstName(_0x568cae){var _0x213659=_['head'](_0x568cae[_0x33ee('0x9')]);if(_0x213659&&_0x213659['name']){if(_0x213659['name']==_0x213659['address']){return _0x213659[_0x33ee('0xe')][_0x33ee('0xf')](0x0,_0x213659['name'][_0x33ee('0x10')]('@'));}var _0x246989=_0x213659[_0x33ee('0xe')][_0x33ee('0x11')](/\s+/);return _0x246989[_0x33ee('0x12')]>0x1?_0x246989['slice'](0x0,-0x1)[_0x33ee('0x13')]('\x20'):_0x213659[_0x33ee('0xe')];}return _0x33ee('0x14');}function getLastName(_0x4d0cec){var _0x43fb57=_[_0x33ee('0x8')](_0x4d0cec[_0x33ee('0x9')]);if(_0x43fb57&&_0x43fb57[_0x33ee('0xe')]){var _0x757a0=_0x43fb57[_0x33ee('0xe')]['split'](/\s+/);return _0x757a0[_0x33ee('0x12')]>0x1?_0x757a0['pop']():'';}return'';}function getMails(_0x19f993,_0x4e72e9){var _0x2b79d1='';for(var _0x1ef46e=0x0;_0x1ef46e<_0x4e72e9['value'][_0x33ee('0x12')];_0x1ef46e+=0x1){if(_0x4e72e9[_0x33ee('0x9')][_0x1ef46e]['address']!==_0x19f993){if(!_[_0x33ee('0x15')](_0x2b79d1)){_0x2b79d1+=',';}_0x2b79d1+=_0x4e72e9[_0x33ee('0x9')][_0x1ef46e][_0x33ee('0xe')]||_0x4e72e9[_0x33ee('0x9')][_0x1ef46e]['address']||'';_0x2b79d1+='\x20<';_0x2b79d1+=_0x4e72e9[_0x33ee('0x9')][_0x1ef46e][_0x33ee('0xa')]?_0x4e72e9['value'][_0x1ef46e][_0x33ee('0xa')]:_0x33ee('0xb')+random['generate'](0x6)+_0x33ee('0xd');_0x2b79d1+='>';}}return _0x2b79d1;}function parseEmail(_0x13c451,_0xe1ada6,_0x367464){if(_0xe1ada6[_0x33ee('0x16')]){var _0x557496=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x557496[_0x33ee('0x17')](_0xe1ada6[_0x33ee('0x16')])){_0xe1ada6['html']=_0xe1ada6[_0x33ee('0x16')]['replace'](_0x557496,'');}if(_0xe1ada6[_0x33ee('0x16')]['includes'](_0x33ee('0x18'))){var _0xdc0db1=[];_0xe1ada6[_0x33ee('0x19')][_0x33ee('0x1a')](_0x327b81=>{_0xdc0db1[_0x33ee('0x1b')](_0x327b81[_0x33ee('0x1c')]);});var _0x31fd90=/<img.*? _SRC(.*?)[^>]+>/g;var _0x53371e=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xa43b9c=_0xe1ada6[_0x33ee('0x16')][_0x33ee('0x1d')](_0x53371e,_0x33ee('0x1e'));var _0x4008f7=_0xa43b9c[_0x33ee('0x1d')](_0x31fd90,_0x33ee('0x1f'));for(let _0x54ee59=0x0;_0x54ee59<_0xdc0db1[_0x33ee('0x12')];_0x54ee59++){var _0x44e965=_0x4008f7[_0x33ee('0x1d')](_0x33ee('0x1f'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0xdc0db1[_0x54ee59]+'\x20]</span>');_0x4008f7=_0x44e965;}_0xe1ada6[_0x33ee('0x16')]=_0x4008f7;}_0x367464['body']=_0xe1ada6[_0x33ee('0x16')];}else{_0x367464[_0x33ee('0x20')]=_0xe1ada6[_0x33ee('0x21')];}if(_0x367464[_0x33ee('0x20')]){_0x367464[_0x33ee('0x20')]=_0x367464[_0x33ee('0x20')][_0x33ee('0x1d')](/<a\s+/gi,_0x33ee('0x22'));}if(_0xe1ada6['to']){_0x367464[_0x33ee('0x23')][_0x33ee('0x24')]=getMails(null,_0xe1ada6['to']);var _0x5cdf3f=getMails(_0x13c451[_0x33ee('0x7')],_0xe1ada6['to']);if(!_['isEmpty'](_0x5cdf3f)){_0x367464['message']['cc']+=_0x5cdf3f;}}if(_0xe1ada6['cc']){_0x367464[_0x33ee('0x23')][_0x33ee('0x25')]=getMails(null,_0xe1ada6['cc']);var _0x19a029=getMails(_0x13c451['email'],_0xe1ada6['cc']);if(!_[_0x33ee('0x15')](_0x19a029)){if(!_[_0x33ee('0x15')](_0x367464[_0x33ee('0x23')]['cc'])){_0x367464[_0x33ee('0x23')]['cc']+=',';}_0x367464[_0x33ee('0x23')]['cc']+=_0x19a029;}}if(!_[_0x33ee('0x26')](_0x367464[_0x33ee('0x23')][_0x33ee('0x24')],_0x13c451[_0x33ee('0x7')])&&!_[_0x33ee('0x26')](_0x367464[_0x33ee('0x23')][_0x33ee('0x25')],_0x13c451[_0x33ee('0x7')])){_0x367464[_0x33ee('0x23')][_0x33ee('0x27')]=_0x13c451['email'];}if(_0xe1ada6[_0x33ee('0x19')]&&_0xe1ada6['attachments']['length']){_0x367464['message']['attach']=_0xe1ada6[_0x33ee('0x19')][_0x33ee('0x12')];for(var _0x2e1f47=0x0,_0x17c5d1,_0x330d20,_0x355324;_0x2e1f47<_0xe1ada6[_0x33ee('0x19')][_0x33ee('0x12')];_0x2e1f47+=0x1){if(_0xe1ada6[_0x33ee('0x19')][_0x2e1f47][_0x33ee('0x28')]===_0x33ee('0x29')){_0x355324=_0xe1ada6['attachments'][_0x2e1f47][_0x33ee('0x1c')]||_0x33ee('0x2a')+_0x2e1f47;_0x17c5d1=util[_0x33ee('0x2b')](_0x33ee('0x2c'),Date['now'](),_0x355324);_0x330d20=path['join'](config[_0x33ee('0x2d')],'server/files/attachments/',_0x17c5d1);fs[_0x33ee('0x2e')](_0x330d20,_0xe1ada6[_0x33ee('0x19')][_0x2e1f47][_0x33ee('0x2f')]);_0x367464['message'][_0x33ee('0x19')][_0x33ee('0x1b')]({'name':_0x355324,'basename':_0x17c5d1,'type':_0xe1ada6[_0x33ee('0x19')][_0x2e1f47][_0x33ee('0x30')],'filepath':_0x330d20});}}}if(_0xe1ada6[_0x33ee('0x31')]&&_0xe1ada6[_0x33ee('0x31')][_0x33ee('0x12')]>0x0){var _0x228069=[_0x33ee('0x32'),_0x33ee('0x33'),_0x33ee('0x34')];for(var _0x5571f6=0x0;_0x5571f6<_0xe1ada6[_0x33ee('0x31')][_0x33ee('0x12')];_0x5571f6++){var _0x2258b0=_[_0x33ee('0x10')](_0x228069,_0xe1ada6[_0x33ee('0x31')][_0x5571f6][_0x33ee('0x35')]);if(_0x2258b0>=0x0){_0x367464[_0x33ee('0x36')]=!![];}}}return _0x367464;}exports['parser']=function(_0x5e4ec6,_0x4a526f,_0x1903ca){var _0x22585a={'from':getAddress(_0x4a526f[_0x33ee('0x37')]),'firstName':getFirstName(_0x4a526f[_0x33ee('0x37')]),'lastName':getLastName(_0x4a526f['from']),'mapKey':_0x33ee('0x7'),'message':{'from':getMails(_0x5e4ec6[_0x33ee('0x7')],_0x4a526f[_0x33ee('0x37')]),'to':_0x5e4ec6[_0x33ee('0x7')],'cc':'','subject':_0x4a526f['subject']||'','messageId':_0x4a526f[_0x33ee('0x38')],'inReplyTo':_0x4a526f[_0x33ee('0x39')],'sentAt':moment(_0x4a526f['date'])[_0x33ee('0x2b')](_0x33ee('0x3a')),'attach':![],'attachments':[]}};if(!_0x4a526f[_0x33ee('0x16')]&&!_0x4a526f[_0x33ee('0x21')]){var _0x1359e7=_['filter'](_0x4a526f[_0x33ee('0x19')],{'contentType':_0x33ee('0x3b')});if(_0x1359e7[_0x33ee('0x12')]){logger['info'](util['format'](_0x33ee('0x3c'),_0x4a526f[_0x33ee('0x38')]));tnef[_0x33ee('0x3d')](_[_0x33ee('0x3e')](_0x1359e7)[_0x33ee('0x2f')],function(_0x1b3f39,_0x328538){if(_0x328538){_0x4a526f[_0x33ee('0x16')]=_0x328538['BodyHTML']||_0x33ee('0x3f');if(_0x328538[_0x33ee('0x40')]){for(var _0x29388a=0x0;_0x29388a<_0x328538[_0x33ee('0x40')][_0x33ee('0x12')];_0x29388a++){var _0x188f4e=_0x328538[_0x33ee('0x40')][_0x29388a];_0x22585a[_0x33ee('0x23')][_0x33ee('0x19')][_0x33ee('0x1b')]({'filename':_0x188f4e[_0x33ee('0x41')],'content':Buffer['from'](_0x188f4e['Data'])});}}}_0x1903ca(parseEmail(_0x5e4ec6,_0x4a526f,_0x22585a));});}else{_0x4a526f[_0x33ee('0x16')]=_0x33ee('0x3f');_0x1903ca(parseEmail(_0x5e4ec6,_0x4a526f,_0x22585a));}}else{_0x1903ca(parseEmail(_0x5e4ec6,_0x4a526f,_0x22585a));}};exports[_0x33ee('0x42')]=function(_0x1bb4ce,_0x3dad22){var _0x4dbcd3=[_0x33ee('0x43')+(_0x3dad22||''),_0x33ee('0x44')+_0x1bb4ce,'',''];return Buffer['from'](_0x4dbcd3[_0x33ee('0x13')]('\ 1'),_0x33ee('0x45'))['toString'](_0x33ee('0x46'));};